EBookClubs

Read Books & Download eBooks Full Online

EBookClubs

Read Books & Download eBooks Full Online

Book Power Characterization of a Digit online FPGA Implementation of a Low density Parity check Decoder for WiMAX Applications

Download or read book Power Characterization of a Digit online FPGA Implementation of a Low density Parity check Decoder for WiMAX Applications written by Manpreet Singh and published by . This book was released on 2014 with total page 73 pages. Available in PDF, EPUB and Kindle. Book excerpt: Low-density parity-check (LDPC) codes are a class of easily decodable error-correcting codes. Published parallel LDPC decoders demonstrate high throughput and low energy-per-bit but require a lot of silicon area. Decoders based on digit-online arithmetic (processing several bits per fundamental operation) process messages in a digit-serial fashion, reducing the area requirements, and can process multiple frames in frame-interlaced fashion. Implementations on Field-Programmable Gate Array (FPGA) are usually power- and area-hungry, but provide flexibility compared with application-specific integrated circuit implementations. With the penetration of mobile devices in the electronics industry the power considerations have become increasingly important. The power consumption of a digit-online decoder depends on various factors, like input log-likelihood ratio (LLR) bit precision, signal-to-noise ratio (SNR) and maximum number of iterations. The design is implemented on an Altera Stratix IV GX EP4SGX230 FPGA, which comes on an Altera DE4 Development and Education Board. In this work, both parallel and digit-online block LDPC decoder implementations on FPGAs for WiMAX 576-bit, rate-3/4 codes are studied, and power measurements from the DE4 board are reported. Various components of the system include a random-data generator, WiMAX Encoder, shift-out register, additive white Gaussian noise (AWGN) generator, channel LLR buffer, WiMAX Decoder and bit-error rate (BER) Calculator. The random-data generator outputs pseudo-random bit patterns through an implemented linear-feedback shift register (LFSR). Digit-online decoders with input LLR precisions ranging from 6 to 13 bits and parallel decoders with input LLR precisions ranging from 3 to 6 bits are synthesized in a Stratix IV FPGA. The digit-online decoders can be clocked at higher frequency for higher LLR precisions. A digit-online decoder can be used to decode two frames simultaneously in frame-interlaced mode. For the 6-bit implementation of digit-online decoder in single-frame mode, the minimum throughput achieved is 740 Mb/s at low SNRs. For the case of 11-bit LLR digit-online decoder in frame-interlaced mode, the minimum throughput achieved is 1363 Mb/s. Detailed analysis such as effect of SNR and LLR precision on decoder power is presented. Also, the effect of changing LLR precision on max clock frequency and logic utilization on the parallel and the digit-online decoders is studied. Alongside, power per iteration for a 6-bit LLR input digit-online decoder is also reported.

Book Power Characterization of a Gbit s Fpga Convolutional Ldpc Decoder

Download or read book Power Characterization of a Gbit s Fpga Convolutional Ldpc Decoder written by Si-Yun Li and published by . This book was released on 2012 with total page 101 pages. Available in PDF, EPUB and Kindle. Book excerpt: In this thesis, we present an FPGA implementation of parallel-node low-density-parity-check convolutional-code (PN-LDPC-CC) encoder and decoder. A 2.4 Gbit/s rate-1/2 (3, 6) PN-LDPC-CC encoder and decoder were implemented on an Altera development and education board (DE4). Detailed power measurements of the FPGA board for various configurations of the design have been conducted to characterize the power consumption of the decoder module. For an Eb/N0 of 5 dB, the decoder with 9 processor cores (pipelined decoder iteration stages) has a bit-error-rate performance of 10E-10 and achieves an energy-per-coded-bit of 1.683 nJ based on raw power measurement results. The increase in Eb/N0 can effectively reduce the decoder power and energy-per-coded-bit for configurations with 5 or more processor cores for Eb/N0

Book Decoder Architectures and Implementations for Quasi cyclic Low density Parity check Codes

Download or read book Decoder Architectures and Implementations for Quasi cyclic Low density Parity check Codes written by Xiaoheng Chen and published by . This book was released on 2011 with total page pages. Available in PDF, EPUB and Kindle. Book excerpt: Since the rediscovery of low-density parity-check (LDPC) codes in the late 1990s, tremendous progress has been made in code construction and design, decoding algorithms, and decoder implementation of these capacity-approaching codes. Recently, LDPC codes are considered for applications such as high-speed satellite and optical communications, the hard disk drives, and high-density flash memory based storage systems, which require that the codes are free of error-floor down to bit error rate (BER) as low as 10−12 to 10−15. FPGAs are usually used to evaluate the error performance of codes, since one can exploit the finite word length and extremely high internal memory bandwidth of an FPGA. Existing FPGA-based LDPC decoders fail to utilize the configurability and read-first mode of embedded memory in the FPGAs, and thus result in limited throughput and codes sizes. Four optimization techniques, i.e., vectorization, folding, message relocation, and circulant permutation matrix (CPM) sharing, are proposed to improve the throughput, scalability, and efficiency of FPGA-based decoders. Also, a semi-automatic CAD tool called QCSYN (Quasi-Cyclic LDPC decoder SYNthesis) is designed to shorten the implementation time of decoders. Using the above techniques, a high-rate (16129,15372) code is shown to have no error-floor down to the BER of 10−14. Also, it is very difficult to construct codes that do not exhibit an error floor down to 10−15 or so. Without detailed knowledge of dominant trapping sets, a backtracking-based reconfigurable decoder is designed to lower the error floor of a family of structurally compatible quasi-cyclic LDPC codes by one to two orders of magnitudes. Hardware reconfigurability is another significant feature of LDPC decoders. A tri-mode decoder for the (4095,3367) Euclidean geometry code is designed to work with three compatible binary message passing decoding algorithms. Note that this code contains 262080 edges (21.3 times of the (2048,1723) 10GBASE-T code) in its Tanner graph and is the largest code ever implemented. Besides, an efficient QC-LDPC Shift Network (QSN) is proposed to reduce the interconnect delay and control logic of circular shift network, a core component in the reconfigurable decoder that supports a family of structurally compatible codes. The interconnect delay and control logic area are reduced by a factor of 2.12 and 8, respectively. Non-binary LDPC codes are effective in combating burst errors. Using the power representation of the elements in the Galois field to organize both intrinsic and extrinsic messages, we present an efficient decoder architecture for non-binary QC-LDPC codes. The proposed decoder is reconfigurable and can be used to decode any code of a given field size. The decoder supports both regular and irregular non-binary QC-LDPC codes. Using a practical metric of throughput per unit area, the proposed implementation outperforms the best implementations published in research literature to date.

Book Low complexity High speed VLSI Design of Low density Parity check Decoders

Download or read book Low complexity High speed VLSI Design of Low density Parity check Decoders written by Zhiqiang Cui and published by . This book was released on 2008 with total page 218 pages. Available in PDF, EPUB and Kindle. Book excerpt: Low-Density Parity-check (LDPC) codes have attracted considerable attention due to their capacity approaching performance over AWGN channel and highly parallelizable decoding schemes. They have been considered in a variety of industry standards for the next generation communication systems. In general, LDPC codes achieve outstanding performance with large codeword lengths (e.g., N>1000 bits), which lead to a linear increase of the size of memory for storing all the soft messages in LDPC decoding. In the next generation communication systems, the target data rates range from a few hundred Mbit/sec to several Gbit/sec. To achieve those very high decoding throughput, a large amount of computation units are required, which will significantly increase the hardware cost and power consumption of LDPC decoders. LDPC codes are decoded using iterative decoding algorithms. The decoding latency and power consumption are linearly proportional to the number of decoding iterations. A decoding approach with fast convergence speed is highly desired in practice. This thesis considers various VLSI design issues of LDPC decoder and develops efficient approaches for reducing memory requirement, low complexity implementation, and high speed decoding of LDPC codes. We propose a memory efficient partially parallel decoder architecture suited for quasi-cyclic LDPC (QC-LDPC) codes using Min-Sum decoding algorithm. We develop an efficient architecture for general permutation matrix based LDPC codes. We have explored various approaches to linearly increase the decoding throughput with a small amount of hardware overhead. We develop a multi-Gbit/sec LDPC decoder architecture for QC-LDPC codes and prototype an enhanced partially parallel decoder architecture for a Euclidian geometry based LDPC code on FPGA. We propose an early stopping scheme and an extended layered decoding method to reduce the number of decoding iterations for undecodable and decodable sequence received from channel. We also propose a low-complexity optimized 2-bit decoding approach which requires comparable implementation complexity to weighted bit flipping based algorithms but has much better decoding performance and faster convergence speed.

Book Algorithms and Architectures for Efficient Low Density Parity Check  LDPC  Decoder Hardware

Download or read book Algorithms and Architectures for Efficient Low Density Parity Check LDPC Decoder Hardware written by Tinoosh Mohsenin and published by . This book was released on 2010 with total page pages. Available in PDF, EPUB and Kindle. Book excerpt: Many emerging and future communication applications require a significant amount of high throughput data processing and operate with decreasing power budgets. This need for greater energy efficiency and improved performance of electronic devices demands a joint optimization of algorithms, architectures, and implementations. Low Density Parity Check (LDPC) decoding has received significant attention due to its superior error correction performance, and has been adopted by recent communication standards such as 10GBASE-T 10 Gigabit Ethernet. Currently high performance LDPC decoders are designed to be dedicated blocks within a System-on-Chip (SoC) and require many processing nodes. These nodes require a large set of interconnect circuitry whose delay and power are wire-dominated circuits. Therefore, low clock rates and increased area are a common result of the codes' inherent irregular and global communication patterns. As the delay and energy costs caused by wires are likely to increase in future fabrication technologies new solutions dealing with future VLSI challenges must be considered. Three novel message-passing decoding algorithms, Split-Row, Multi-Splitand Split-Row Threshold are introduced, which significantly reduce processor logical complexity and local and global interconnections. One conventional and four Split-Row Threshold LDPC decoders compatible with the 10GBASE-T standard are implemented in 65 nm CMOS and presented along with their trade-offs in error correction performance, wire interconnect complexity, decoder area, power dissipation, and speed. For additional power saving, an adaptive wordwidth decoding algorithm is proposed which switches between a 6-bit Normal Mode and a reduced 3-bit Low Power Mode depending on the SNR and decoding iteration. A 16-way Split-Row Threshold with adaptive wordwidth implementation achieves improvements in area, throughput and energy efficiency of 3.9x, 2.6x, and 3.6x respectively, compared to a MinSum Normalized implementation, with an SNR loss of 0.25 dB at BER = 10−7. The decoder occupies a die area of 5.10 mm2, operates up to 185 MHz at 1.3 V, and attains an average throughput of 85.7 Gbps with early-termination. Low power operation at 0.6 V gives a worst case throughput of 9.3 Gbps--above the 6.4 Gbps 10GBASE-T requirement, and an average power of 31 mW.

Book FPGA Implementation of a Clockless Stochastic LDPC Decoder

Download or read book FPGA Implementation of a Clockless Stochastic LDPC Decoder written by Ceroici Christopher and published by . This book was released on 2014 with total page 62 pages. Available in PDF, EPUB and Kindle. Book excerpt: This thesis presents a clockless stochastic low-density parity-check (LDPC) decoder implemented on a Field-Programmable Gate Array (FPGA). Stochastic computing reduces the wiring complexity necessary for decoding by replacing operations such as multiplication and division with simple logic gates. Clockless decoding increases the throughput of the decoder by eliminating the requirement for node signals to be synchronized after each decoding cycle. With this partial-update algorithm the decoder's speed is limited by the average wire delay of the interleaver rather than the worst-case delay. This type of decoder has been simulated in the past but not implemented on silicon. The design is implemented on an ALTERA Stratix IV EP4SGX230 FPGA and the frame error rate (FER) performance, throughput and power consumption are presented for (96,48) and (204,102) decoders.

Book A Reconfigurable FPGA Implementation of an LDPC Decoder for Unstructured Codes

Download or read book A Reconfigurable FPGA Implementation of an LDPC Decoder for Unstructured Codes written by and published by . This book was released on with total page 6 pages. Available in PDF, EPUB and Kindle. Book excerpt: This paper describes the implementation of a general and embedded decoder for the evaluation of unstructured low-density parity-check (LDPC) codes over additive-white Gaussian noise (AWGN) channels. The decoder, which has a serial architecture and moderate throughput, is a peripheral connected to the embedded PowerPC processor of a Xilinx Virtex-II Pro FPGA and is managed by the processor. This method of Hardware/ Software implementation provides the maximum flexibility for the development and rapid prototyping of the hardware-based simulator system. The decoding algorithm proposed in this paper belongs to the class of min-sum with correction factor in which the correction factor updates with the log-likelihood ratio (LLR) values.

Book An Analog Decoder for Turbo Structured Low Density Parity Check Codes

Download or read book An Analog Decoder for Turbo Structured Low Density Parity Check Codes written by Ali Reza Rabbani Abolfazli and published by . This book was released on 2012 with total page pages. Available in PDF, EPUB and Kindle. Book excerpt:

Book Quantization of a Low density Parity check  LDPC  Decoder

Download or read book Quantization of a Low density Parity check LDPC Decoder written by and published by . This book was released on 2012 with total page 185 pages. Available in PDF, EPUB and Kindle. Book excerpt: This dissertation presents two-bit and three-bit quantizations for Sum Product Algorithm (SPA) decoding of Low-Density Parity-Check (LDPC) codes. The study involves evaluation of both decoding performance and hardware implementation requirements. Trade-o s be- tween these factors are considered. The quantizations are simulated in software to measure decoding performance. While quantization e ects are the focal point of the research, a comparison of the number of decoding iterations and of the number of bits of precision used in the decoder are both presented along with the quantization experiments. Decoder performance, measured in terms of both Bit Error Rate (BER) and Frame Error Rate (FER), is tested for each two-bit and three-bit quantization over a range of Signal to Noise Ratio (SNR) values. No single quantization outperforms all other quantizations for the entire tested SNR range. Analysis of the SPA is performed, revealing strategies for computational e ciency and digital design. The hardware designs combine the parity-check and variable-node update steps of the SPA into a single update computation. The update computation is implemented in a hardware design language (HDL), synthesized to programmable logic, and then tested on a Field Programmable Gate Array (FPGA). Hardware implementation requirements, as measured from the synthesis results, are evaluated and compared to a selection of other pub- lished works, particularly the work of Planjery and others A exible implementation is proposed that can adapt the quantization as the channel conditions change.

Book High Performance and Energy Efficient Decoder Design for Non Binary LDPC Codes

Download or read book High Performance and Energy Efficient Decoder Design for Non Binary LDPC Codes written by Yuta Toriyama and published by . This book was released on 2016 with total page 133 pages. Available in PDF, EPUB and Kindle. Book excerpt: Binary Low-Density Parity-Check (LDPC) codes are a type of error correction code known to exhibit excellent error-correcting capabilities, and have increasingly been applied as the forward error correction solution in a multitude of systems and standards, such as wireless communications, wireline communications, and data storage systems. In the pursuit of codes with even higher coding gain, non-binary LDPC (NB-LDPC) codes defined over a Galois field of order q have risen as a strong replacement candidate. For codes defined with similar rate and length, NB-LDPC codes exhibit a significant coding gain improvement relative to that of their binary counterparts. Unfortunately, NB-LDPC codes are currently limited from practical application by the immense complexity of their decoding algorithms, because the improved error-rate performance of higher field orders comes at the cost of increasing decoding algorithm complexity. Currently available ASIC implementation solutions for NB-LDPC code decoders are simultaneously low in throughput and power-hungry, leading to a low energy efficiency. We propose several techniques at the algorithm level as well as hardware architecture level in an attempt to bring NB-LDPC codes closer to practical deployment. On the algorithm side, we propose several algorithmic modifications and analyze the corresponding hardware cost alleviation as well as impact on coding gain. We also study the quantization scheme for NB-LDPC decoders, again in the context of both the hardware and coding gain impacts, and we propose a technique that enables a good tradeoff in this space. On the hardware side, we develop a FPGA-based NB-LDPC decoder platform for architecture prototyping as well as hardware acceleration of code evaluation via error rate simulations. We also discuss the architectural techniques and innovations corresponding to our proposed algorithm for optimization of the implementation. Finally, a proof-of-concept ASIC chip is realized that integrates many of the proposed techniques. We are able to achieve a 3.7x improvement in the information throughput and 23.8x improvement in the energy efficiency over prior state-of-the-art, without sacrificing the strong error correcting capabilities of the NB-LDPC code.

Book Field programmable Gate array  FPGA  Implementation of Low density Parity check  LDPC  Decoder in Digital Video Broadcasting   Second Generation Satellite  DVB S2

Download or read book Field programmable Gate array FPGA Implementation of Low density Parity check LDPC Decoder in Digital Video Broadcasting Second Generation Satellite DVB S2 written by Kung Chi Cinnati Loi and published by . This book was released on 2010 with total page pages. Available in PDF, EPUB and Kindle. Book excerpt:

Book Mixed Signal Implementation of Low Density Parity Check Decoder

Download or read book Mixed Signal Implementation of Low Density Parity Check Decoder written by Sanjoy Basak and published by . This book was released on 2018 with total page 190 pages. Available in PDF, EPUB and Kindle. Book excerpt: The receiver side of many communication systems incorporates an error-correction decoder to achieve good bit-error rate (BER) performance. While good BER is a metric of reliable communication, high throughput and energy-efficiency are also desired. Low-density parity-check (LDPC) decoders are able to perform well in term of these metrics. In this thesis, the Modified Differential Decoding Binary Message Passing (MDD-BMP) algorithm of LDPC codes has been chosen to implement in mixed-signal domain. The goal of this research is to achieve energy-efficiency in LDPC decoding while maintaining high-throughput in an implemented design of reasonable effective area. The re-design of some digital parts of the LDPC decoder in analog domain is expected to offer energy-efficiency and high throughput. However, these benefits come at a cost of analog impairments, such as, different random mismatch between similar inverters arising from process variation during fabrication. The comparative contribution of these impairments on the BER performance of the decoder has been investigated. During the design of the decoder, an on-chip calibration scheme has been arranged and global routing of the tuning signals has been maintained to address these random mismatches. Furthermore, modulation of the decoding speed by off-chip tuning has been made possible. For the purpose of high-speed testing of the decoding process, enough on-chip memory has been placed to store 10 codewords and feed them to the decoder through a binary-weighted capacitor-based digital to analog converter. Design and placement of analog MUXes enable us to debug sensitive analog nodes inside the decoder from off-chip. Finally, the full process of the physical design of the decoder in TSMC 65nm has been almost fully automated in Cadence SKILL code. Over 100 simulations including parasitic capacitance of long wires in physical design yield an average decoding speed of approximately 2.04 ns in moderate speed mode, therefore, providing a high throughput of 134 Gb/s. Taking into account the average current drawn by the circuits during both the pre-charge phase and the decoding phase, the calculated average energy per bit consumed by the decoder is 1.267 pJ/bit.

Book Energy efficient Decoding of Low density Parity check Codes

Download or read book Energy efficient Decoding of Low density Parity check Codes written by Kevin Cushon and published by . This book was released on 2014 with total page pages. Available in PDF, EPUB and Kindle. Book excerpt: "Low-density parity-check (LDPC) codes are a type of error correcting code that are frequently used in high-performance communications systems, due to their ability to approach the theoretical limits of error correction. However, their iterative soft-decision decoding algorithms suffer from high computational complexity, energy consumption, and auxiliary circuit implementation difficulties. It is of particular interest to develop energy-efficient LDPC decoders in order to decrease cost of operation, increase battery life in portable devices, lessen environmental impact, and increase the range of applications for these powerful codes.In this dissertation, we propose four new LDPC decoder designs with the primary goal of improving energy efficiency over previous designs. First, we present a bidirectional interleaver based on transmission gates, which reduces wiring complexity and associated parasitic energy losses. Second, we present an iterative decoder design based on pulse-width modulated min-sum (PWM-MS). We demonstrate that the pulse width message format reduces switching activity, computational complexity, and energy consumption compared to other recent LDPC decoder designs. Third, wepresent decoders based on differential binary (DB) algorithms. We also propose an improved differential binary (IDB) decoding algorithm, which greatly increases throughput and reduces energy consumption compared to recent decoders ofsimilar error correction capability. Finally, we present decoders based on gear-shift algorithms, which use multiple decoding rules to minimize energy consumption. We propose gear-shift pulse-width (GSP) and IDB with GSP (IGSP) algorithms, and demonstrate that they achieve superior energy efficiency without compromising error correction performance." --

Book Low Density Parity Check Decoder Architectures for Integrated Circuits and Quantum Cryptography

Download or read book Low Density Parity Check Decoder Architectures for Integrated Circuits and Quantum Cryptography written by Mario Milicevic and published by . This book was released on 2017 with total page pages. Available in PDF, EPUB and Kindle. Book excerpt: Forward error correction enables reliable one-way communication over noisy channels, by transmitting redundant data along with the message in order to detect and resolve errors at the receiver. Low-density parity-check (LDPC) codes achieve superior error-correction performance on Gaussian channels under belief propagation decoding, however, their complex parity-check matrix structure introduces hardware implementation challenges. This thesis explores how the quasi-cyclic structure of LDPC parity-check matrices can be exploited in the design of low-power hardware architectures for multi-Gigabit/second decoders realized in CMOS technology, as well as in the design and construction of multi-edge LDPC codes for long-distance (beyond 100km) quantum cryptography over optical fiber. A frame-interleaved architecture is presented with a path-unrolled message-passing schedule to reduce the complexity of routing interconnect in an integrated circuit decoder implementation. A proof-of-concept silicon test chip was fabricated in the 28nm CMOS technology node. The LDPC decoder chip supports the four codes presented in the IEEE 802.11ad standard, occupies an area of 3.41mm^2, and achieves an energy efficiency of 15pJ/bit while delivering a maximum throughput of 6.78Gb/s, and operating with a 202MHz clock at 0.9V supply. The test chip achieves the highest normalized energy efficiency among published CMOS-based decoders for the IEEE 802.11ad standard. A quasi-cyclic code construction technique is applied to a multi-edge LDPC code with block length of 10^6 bits in order to reduce the latency of LDPC decoding in the key reconciliation step of long-distance quantum key distribution. The GPU-based decoder achieves a maximum information throughput of 7.16Kb/s, and extends the current maximum transmission distance from 100km to 160km with a secret key rate of 4.10 x 10^(-7) bits/pulse under 8-dimensional reconciliation. The GPU-based decoder delivers up to 8.03x higher decoded information throughput over the upper bound on secret key rate for a lossy optical channel, thus demonstrating that key reconciliation with LDPC codes is no longer a post-processing bottleneck in quantum key distribution. The contributions presented in this thesis can be applied to future research in the implementation of silicon-based linear-program decoders for high-reliability channels, and single-chip solutions for quantum key distribution containing integrated photonics and post-processing algorithms.

Book Flexible Encoder and Decoder Designs for Low density Parity check Codes

Download or read book Flexible Encoder and Decoder Designs for Low density Parity check Codes written by Sunitha Kopparthi and published by . This book was released on 2010 with total page pages. Available in PDF, EPUB and Kindle. Book excerpt: Future technologies such as cognitive radio require flexible and reliable hardware architectures that can be easily configured and adapted to varying coding parameters. The objective of this work is to develop a flexible hardware encoder and decoder for low-density parity-check (LDPC) codes. The design methodologies used for the implementation of a LDPC encoder and decoder are flexible in terms of parity-check matrix, code rate and code length. All these designs are implemented on a programmable chip and tested. Encoder implementations of LDPC codes are optimized for area due to their high complexity. Such designs usually have relatively low data rate. Two new encoder designs are developed that achieve much higher data rates of up to 844 Mbps while requiring more area for implementation. Using structured LDPC codes decreases the encoding complexity and provides design flexibility. The architecture for an encoder is presented that adheres to the structured LDPC codes defined in the IEEE 802.16e standard. A single encoder design is also developed that accommodates different code lengths and code rates and does not require re-synthesis of the design in order to change the encoding parameters. The flexible encoder design for structured LDPC codes is also implemented on a custom chip. The maximum coded data rate of the structured encoder is up to 844 Mbps and for a given code rate its value is independent of the code length. An LDPC decoder is designed and its design methodology is generic. It is applicable to both structured and any randomly generated LDPC codes. The coded data rate of the decoder increases with the increase in the code length. The number of decoding iterations used for the decoding process plays an important role in determining the decoder performance and latency. This design validates the estimated codeword after every iteration and stops the decoding process when the correct codeword is estimated which saves power consumption. For a given parity-check matrix and signal-to-noise ratio, a procedure to find an optimum value of the maximum number of decoding iterations is presented that considers the affects of power, delay, and error performance.

Book Stochastic Decoding of Low Density Parity check Codes

Download or read book Stochastic Decoding of Low Density Parity check Codes written by Saeed Sharifi Tehrani and published by . This book was released on 2010 with total page pages. Available in PDF, EPUB and Kindle. Book excerpt: