Introducing Sub-Block Absorption to Improve the Performance of the Layered Indexless Indexed Flash Code
|
|
|
- Conrad Rice
- 6 years ago
- Views:
Transcription
1 Introducing Sub-Block Absorption to Improve the Performance of the Layered Indexless Indexed Flash Code Ariel A. Maguyon 1 Proceso L. Fernandez 2 1,2 Department of Information Systems and Computer Science, Ateneo de Manila University, Quezon City, Philippines {amaguyon, [email protected] Received 19 June 2014; Revised 5 November 2014; Accepted 24 November 2014 Abstract. Flash codes are used to encode and decode digital information in flash memory. One of the more well-known flash codes in literature is the Layered Indexless Indexed Flash Code (LILIFC). This study explores how to improve the performance of the LILIFC while staying true to its core. A new flash code is proposed, called the Layered Indexless Indexed Flash Code with Absorption (LILIFCWA), which introduces sub-block absorption to the LILIFC encoding function while retaining the original decoding function. Results from computer simulation showed marked improvements gained by LILIFCWA, with lower write deficiency ratios over variable flash memory sub-block sizes. An interesting correlation between the (LILIFCWA versus LILIFC) performance difference and cases involving a dominant bit update was also uncovered. These findings not only prove the superiority of the LILIFCWA over the LILIFC, but may also provide ideas to other researchers on how to improve other existing flash codes. Keywords: flash code, memory, coding scheme, block erasure 1 Introduction Flash memory has become an important and ubiquitous storage technology in modern computing [1]. It integrates nicely into the modern paradigm commonly known as the Internet of Things [1], [2]. This type of nonvolatile memory has been incorporated into many hardware platforms and portable storage units such as USB flash drives and flash memory cards used in many consumer electronic products. With the popularity of Personal Mobile Devices (PMDs), flash memory has become the preferred secondary storage component over hard disk drives to address limitations in space, speed, and energy requirements of such devices [3]. On many design decisions including those made for PMDs, the choice of flash memory over hard drives is clear. Aside from the small form factor, flash memory has no moving parts, which means less power consumption and virtual immunity to shock a perennial problem of hard drives. Its access time is also significantly lower (usually in the order of 103 times [3]) compared to hard drives. However, flash memory has its share of disadvantages. For one, its price is still considerably higher (approximately $2/GB) compared to the price of hard drives (approximately $0.09/GB) [3]. Another disadvantage, though less known to most consumers, is its lifespan. This will be explained shortly. Complementary Metal Oxide Semiconductor (CMOS) transistors make up the core storage units of flash memory [3], [4]. Typically, each transistor has a floating-gate cell that supports two or more charge levels, starting from charge level 0. A cell could represent one or more data bits depending on its maximum charge [4], [5]. A Single-Level Cell (SLC), for instance, can store one bit of data because it only has two charge levels (0 and 1) while a Multi-Level Cell (MLC) can store more, usually up to 4 bits, in commercially-available devices [4], [5], [6]. Cells are further grouped into blocks [4], [5], [7] (also called erase blocks [6]). The number of cells and blocks contained in an actual device is highly-dependent on capacity, manufacturing process, and other parameters. It is important to note that a cell s charge level can only be increased (i.e., from charge level 0 to 1, or from 1 to 2, etc.), but not decreased (i.e., from 2 to 1). This hardware constraint is often referred to as write asymmetry in flash memory. Also, charge levels cannot be reset back to zero on a per cell basis. To reset one cell s charge level, the entire block to which it belongs must perform an operation known as a block erase [7], [8]. As mentioned, flash memory has a lifespan, and this limitation is also hardware in nature. A device s lifespan is constrained by the number of write-erase cycles for an erase block. That number is about 10,000 for MLC and 100,000 for SLC [3], [4]. Once the cycle threshold is reached, memory cells begin to degrade and the device eventually becomes unusable.
2 Maguyon and Fernandez: Improve the Performance of the Layered Indexless Indexed Flash Code One way to counteract the write-erase cycle limitation is to design efficient schemes used for encoding information to flash memory. Such coding schemes, more popularly known as floating codes [5], [7] or flash codes [6], [7], [8], [9], [10], [11], have recently attracted the attention of researchers, particularly computer scientists, because of the challenges involved in their development [6]. The Indexless Indexed Flash Code (ILIFC) [7] and Layered Indexless Indexed Flash Code (LILIFC) [6] are just two of the popular coding schemes discussed in this and numerous other papers. More advanced schemes including Phoenix Flash Code (PFC) [9], Binary- Indexed Flash Code (BIFC) [10], Bi-Modal Flash Code (BMFC) [8], and Multi-mode Flash Code (MMFC) [11] provide better performance but also require more complex algorithms to implement. 1.1 Research Objectives The primary objective of this paper is to show how the popular coding scheme known as the Layered Indexless Indexed Flash Code could be pushed further to improve performance. The authors further intended to adhere as close as possible to the original LILIFC, so as to maintain its advantage in simplicity and, in many cases, speed. Hence, more complex coding schemes, such as hybrids used in [8], [9], [10], [11] were not considered. 1.2 Significance of the Study The authors believe that small but significant improvements to LILIFC and/or ILIFC would be helpful to numerous researchers making use of these popular flash codes. The concept of delaying block erasure, for as long as possible, is one of the main driving principles in this research. It is hoped that this would spawn future studies incorporating the same idea. 1.3 Preliminaries This subsection discusses the basic concepts as well as the theoretical background used throughout this paper. It is important for the reader to first become familiar with the mathematical abstractions presented here in order to understand the context of subsequent discussions. As mentioned earlier, a flash code is a mechanism used for encoding and decoding digital information in flash memory. Such memory typically consists of many blocks of flash cells. It is sufficient to consider how a flash code works on a single block since this mechanism is just similarly applied to the remaining blocks. A block may be modeled as an array of n cells. Each cell can hold some charge, abstractly represented by an integer from A q = {0, 1,, q-1. Thus, the state of a block may be represented by some vector of integers C = (c 0, c 1,, c n-1 ), where c i A q and hence C A qn. Suppose D = (d 0, d 1,, d k-1 ), where c i {0,1 and D {0,1 k, is some k-bit information stored in the block. The underlying flash code is the mechanism that allows the information vector to be derived from the given state vector (decoding) and also enables the flash device to properly produce a new state vector whenever the information vector is updated (encoding). The two functions D and E of the flash code F(D,E ) define the decoding and encoding operations respectively. Formally, D : A q n {0,1 k, guaranteeing that every possible block state can be interpreted unambiguously. On the other hand, the encoding function E : A q n {0, 1,, k-1 A q n {E takes as its input the current block state C = (c 0, c 1,, c n-1 ) and the specific index i of the bit to be updated from the information vector D = (d 0, d 1,, d k-1 ), to either produce a new block state C = (c 0, c 1,, c n-1 ), where C C, or return the block erasure token E if this is not possible. The write asymmetry property is expressed in the following constraint: c j c j j {0, 1,, n-1. The performance of a flash code is usually measured using the write deficiency, introduced in [7], or its normalized version, the write deficiency ratio [8], [9], [11]. The latter is used in this paper, and is computed using the formula: ˆ δ ( F ) n q = ( 1) n( q 1) t where n is the number of cells in the block, q is the number of different charge levels possible in a cell, and t is the actual number of bit updates accommodated by the flash code before a block erasure occurs. The ideal value of the write deficiency ratio is 0, while the worst possible case has a value of 1. In this study, the partitioning technique used in both ILIFC and LILIFC is adopted. As such, a block is further partitioned into logical groups called sub-blocks. Each sub-block consists of contiguous cells, and a subblock is either empty (all cells have a charge of 0), full (all cells have a charge of q-1) or active (otherwise). Additional terms and definitions necessary are introduced in the containing sections. (1) 19
3 2 Review of Related Literature Journal of Computers Vol. 26, No. 1, April Straightforward Coding One of the simplest ways to store an information vector of word length k to flash memory with an erase block size of n cells is to divide n by k (assume n is a multiple of k for simplicity) to form m sub-blocks and map each bit to the corresponding cell in a particular sub-block [11]. For example, suppose the information vector is composed of four bits (bit 0 to 3) and some flash memory is characterized by n = 8 and q = 2. In this scenario, m = 2. Bit i is mapped to cell number i mod k (i.e., bit 1 is mapped to cell numbers 1 and 5). This scheme is simple and straightforward to implement, but incurs a relatively high write deficiency, especially with a large value of k combined with frequent updates on a few dominant bits. 2.2 Indexed Schemes A more elaborate flash code is discussed by Jiang, et al. in [5]. In their proposed scheme, the information vector of size k bits is divided into a (normally 6) groups, g 0, g 1,, g a-1. On the other hand, the erase block of size n is divided into two parts. The first contains index cells that indicate which group in the information vector is being referred to. The second part stores the actual data and is further subdivided into b groups, h 0, h 1,, h b-1, such that b a. Typically, log q a index cells are allocated for each group in the data cells. Initially, group g i in the information vector maps to group h i in the erase block. After a number of rewrites and h i is no longer able to accommodate another change in the group g i, the next free available group, h j, in the block will be allocated. Indexed flash codes are useful. However, the main problem associated with these codes emerges when n >> k, in which the write deficiency could also become arbitrarily large [7]. 2.3 Indexless Schemes ILIFC. The popular scheme known as Indexless Indexed Flash Code, proposed by Mahdavifar et al. [7], implemented a novel approach to encoding the information vector in an erase block without incurring an additional overhead needed to store the indices [12]. ILIFC accomplished this using the following technique. The erase block is first logically subdivided into m sub-blocks, computed as m = n/k, where k is the word length of the information vector. Implicitly, k also determines the size of each sub-block. The charge level of each cell in the sub-block is represented by the k-tuple cell state vector S = (s 0, s 1,, s k-1 ), which is just (c jk, c jk+1,, c jk+k- 1) for the j th sub-block, and is initially equal to (0, 0,, 0). ILIFC encodes the information vector as follows. One sub-block is used to represent one bit of data. A change in the i th bit of the information vector is encoded into a sub-block by increasing the charge level starting from the i th cell of the block and progressing to the next cell i+1 as the previous cell reaches the maximum charge of q-1. This cell programming pattern treats cell numbers in a block as a circular array, wrapping around towards i = 0 from i = k-1 until the block becomes full (all cells already reached the maximum charge level of q- 1) or a block erasure needs to be carried out. The bit index encoded in a sub-block is decoded by searching for the cell with the highest charge level q-1. The position, i, of that cell within the sub-block yields the index. If there is more than one cell with the maximum charge, the position of the leftmost cell (with charge q-1) provides the index. The use of the term leftmost in the preceding sentence should be taken in the context of the index wraparound protocol effective within each sub-block, such that s i = q-1 and s [(i+k-1) mod k] is the minimum cell level in the sub-block S. The bit value stored in a sub-block is determined by the parity of the sum of all charge levels within the subblock. Mathematically, that would be (s 0 + s s k-1 ) mod 2, yielding either a 0 or a 1. LILIFC. The Layered Indexless Indexed Flash Code discussed exhaustively in [6], enhanced the original ILIFC by implementing a programming pattern that grows horizontally instead of vertically to the right (with wraparound). This scheme makes use of layers that serve as boundary for the maximum charge of all cells in a sub-block. A major advantage of this flash code over ILIFC is the ability to reallocate a sub-block encoded with some index i y to a different index i z, under certain circumstances. It must be noted that ILIFC does not have this kind of flexibility. This advantage translates to lower write deficiencies for a given range of k values and better overall performance compared to ILIFC. 20
4 Maguyon and Fernandez: Improve the Performance of the Layered Indexless Indexed Flash Code Details of the LILIFC follow. To simplify the discussion, however, it is further assumed that n is a multiple of k and that k is an even number. A write to an empty sub-block encoding the index i is made by increasing the charge level of the i th cell of that sub-block by one. The second write to the same sub-block increases the charge of cell i+1, the third write increases the charge of cell i+2, and so on. This programming pattern fills up a subblock on a layer-by-layer basis. Hence, the layer l of a sub-block is determined by the maximum charge level of all cells in that sub-block. Alternatively, it can be said that a sub-block progresses from layer 0 to q-1. The basic difference in the ILIFC and LILIFC coding schemes is illustrated in Fig. 1. LILIFC sub-blocks are decoded in a slightly different manner compared to ILIFC. The index is determined by looking for the position, i, within the sub-block of the leftmost cell belonging to the sub-block s current layer l. Again, the term leftmost is used in a wraparound context and implies that x i = l and x [(i+k-1) mod k] = l-1. LILIFC uses the same rule followed by ILIFC to decode a sub-block s bit value. Fig. 1. ILIFC vs. LILIFC cell programming for bit index 2. An active sub-block is further described to be in the clear state if the charge level in all cells is the same, at some fixed layer l {0, 1,, q-2. This characteristic provides flexibility to LILIFC. In the situation when ILIFC can no longer find an empty sub-block and needs a block erase, LILIFC will look for a clear sub-block and encode the new index into it. The old index encoded in that clear sub-block can simply be forgotten (a sub-block in a clear state has an even parity, assuming k is even). 3 Methodology 3.1 Enhancing the Original LILIFC Scheme Modifications made to the LILIFC are detailed in the following subsections. These are explained by a discussion on the basic concept of the block erasure point and how to delay it, as used in the proposed flash code. 21
5 Journal of Computers Vol. 26, No. 1, April 2015 Block Erasure Point. The point of block erasure in the original LILIFC coding scheme happens when a bit update is required but there is no sub-block assigned or may be assigned to that bit. The latter occurs when there is no sub-block that is either empty or is in the clear state. This proved to be very limiting for the LILIFC, especially for a large value of the information vector word length, k. Delaying Block Erasure. The authors of this paper wanted to improve the performance of the LILIFC by delaying the block erasure point. As mentioned in the Research Objectives section, considered enhancements were only limited to those that did not encode multiple information vector bits in the same sub-block. Although the block decoding function remained the same as LILIFC s, the encoding was tweaked to work a little differently. Instead of doing a block erase during LILIFC s original block erasure point, the proposed enhancements search for an active, but even-parity sub-block that could be absorbed. The pseudo-code for this scheme is shown in Fig. 2. Encoding Map y = (y 0 y 1 y m-1 ) = (x 0 x 1 x m-1 ); for ( j = 0..m-1 ) { if ( ( clear(x j )) (index(x j )==i) ) { write(y i ); return(y); for ( l = 0..q 2 ) { for ( j = 0..m-1 ) { if ( clear(x j ) layer(x j )==l ) { write_new(i,y j ); return(y); for ( j = 0..m-1 ) { if ( parity(x j ) == 0 ) { absorb(i,y j ); return(y); return E; Fig. 2. The main algorithm used by LILIFWCA to encode a bit into a sub-block. A major portion of the above pseudo-code was largely based on the LILIFC code mentioned in [6]. The vector (x 0 x 1 x m-1 ) represents the current state of the erase block while (y 0 y 1 y m-1 ) represents the changed state. The variable m indicates the total number of sub-blocks, while q denotes the number of different state levels possible for a cell. The first for loop of the code checks if the index i is currently assigned a sub-block. If it is, the write() function increments the level in the appropriate cell of that sub-block and returns the revised block. If bit i does not have an assigned sub-block, the algorithm looks for a sub-block with a clear state and has the lowest layer level. The function clear() checks if a sub-block has a clear state and returns either true or false. On the other hand, layer() returns the layer level (highest cell value) in the current sub-block. If such a sub-block is found, the write_new() function encodes the new index to that sub-block and assigns it to i. At this point, if no clear state sub-blocks are available, LILIFC issues a block erase. LILIFCWA delays the block erase by looking for active sub-blocks with an even parity in the last for loop of the pseudo-code. The function parity() returns the parity value of a given sub-block x j. If more than one such sub-block is found, LILIFCWA absorbs the sub-block using one of two techniques used in three versions (please refer to the next subsection for details) of the proposed flash code. The pseudo-code presented above uses absorb() to claim the sub-block it encounters satisfying the criteria on a first-come-first-served basis. Version 3 of LILIFCWA absorbs the sub-block that requires the least number of writes. Finally, LILIFCWA issues a block erase if no active, even-parity sub-block is found. To further clarify how LILIFCWA works, a sample scenario is provided in Fig
6 Maguyon and Fernandez: Improve the Performance of the Layered Indexless Indexed Flash Code Fig. 3. A sample scenario showing how LILIFCWA works through a series of changes by a 4-bit information vector. 3.2 Measuring Performance via Simulation Computer simulation, written in the Java programming language, was used to gauge the performance of the proposed flash code against the LILIFC and ILIFIC. Various write pattern scenarios were explored using the program parameters summarized in Table 1. Table 1. List of relevant program parameters used in the simulations Description Variable Value(s) Block size (fixed) n 2048 Charge states (fixed) q 8 Sub-block size (variable) k 4, 8, 12,, 1024 Update probability of dominant bit (variable) 30%, 50%, and 70% 23
7 Journal of Computers Vol. 26, No. 1, April 2015 Two basic scenarios were investigated. One involved a steady uniform distribution, where all bits had the same probability 1/k of being flipped. The other had a dominant bit, the concept of which, including various degrees of domination, is explained as follows. Steady dominated distribution (30%) one bit had a 30% chance of being flipped; the rest had equal chances at ( )/(k-1) probability Steady dominated distribution (50%) one bit had a 50% chance of being flipped; the rest had equal chances at ( )/(k-1) probability Steady dominated distribution (70%) one bit had a 70% chance of being flipped; the rest had equal chances at ( )/(k-1) probability The encoding mechanism (at the block erasure point) of the proposed flash code, LILIFCWA, was written in three versions (refer to Fig. 4) Version 1.0 the first available even-parity sub-block is selected, and then the absorption of that subblock is done by simply clearing the sub-block (i.e., making the charges of all cells in a sub-block equal to the maximum cell charge in that sub-block) and then encoding the new bit in the next layer Version 2.0 the first available even-parity sub-block is selected, and then the absorption of that subblock is done by making the fewest writes possible to convert the sub-block to the new index; this does not necessarily require clearing the sub-block first Version 3.0 absorption of an even-parity sub-block is done by making the fewest writes possible to convert the sub-block to the new index; the even-parity sub-block selected is the one that requires the least number of writes for such a conversion Fig. 4. An illustration of how the three different LILIFCWA versions work with an 8-bit information vector. Due to space constraints, only the first four sub-blocks are shown and it is assumed that the last four are of odd parity, as indicated in the information vector. It is also assumed that the second sub-block from the left is at the head of the even-parity queue. With each refinement, LILIFCWA was compared to both ILIFC and LILIFC. 4 Results and Analysis The following subsections examine the performance of LILIFCWA. The discussion used the write deficiency ratio as the central metric to compare the proposed flash code to LILIFC and ILIFC. 24
8 Maguyon and Fernandez: Improve the Performance of the Layered Indexless Indexed Flash Code 4.1 LILIFCWA Write Deficiency Ratio Boundary The write deficiency ratio of LILIFCWA is always lower than or equal to that of LILIFC s. Mathematically, this relationship can be expressed as? δ, > 0 (2) k,lilifcwa δk,lilifc k This is because the LILIFCWA coding scheme is the same as that of LILIFC s, except at the latter s block erasure point. These results are shown in Table 2 for the case of steady uniform distribution. Table 2. A comparison of write deficiency ratios for LILIFCWA (Version 3), LIILIFC, and ILIFC sampled over a range of k values for the case of steady uniform distribution k ˆk δ,ilifc ˆk δ,lilifc δˆk,lilifcwa This behavior was largely expected from the proposed flash code because its improvements were based mainly on delaying the block erasure point. That is, there would be no cases where LILIFCWA has a block erasure point that occurs before LILIFC s, given the same sequence of bit updates experienced by the information vector of length k, stored in some block b with a total of n cells. Although Table 2 only showed the case for the steady uniform distribution, similar behavior was also observed in the dominated (30%, 50%, and 70%) cases. The write deficiency ratios of ILIFC, LILIFC, and all three versions of LILIFCWA were graphed for comparison and are shown in Fig. 5. From the graph, it is clear that for all (uniform distribution and dominated) cases, LILIFCWA has the lowest write deficiency ratio among the different flash codes considered. It is also evident that version 3 of the proposed flash code (indicated by LILIFCWA3 in Fig. 5) provides the highest performance. Behavioral characteristics of LILIFCWA s performance can also be inferred by examining the graphs in order from (a) to (d). These insights are discussed in the next subsection. 4.2 Difference in Write Deficiency Ratios For previously proposed flash codes that divide the total number of cells n in a block into sub-blocks of length k, 2 performance is largely dependent on the limitation that k n or, more intuitively, k n, assuming equal probability of each bit in the information vector being changed. This boundary for the value of k is referred to as the degradation point [11]. For cases where k > n, the graph of the write deficiency ratio becomes asymptotic to
9 Journal of Computers Vol. 26, No. 1, April 2015 (a) (b) (c) (d) Fig. 5. Results of the computer simulations. (a) Steady Uniform Distribution, (b) Steady Dominated Distribution (30%), (c) Steady Dominated Distribution (50%), and (d) Steady Dominated Distribution (70%). LILIFCWA v.3 provided the highest performance in all four graphs. For both ILIFC and LILIFC, the degradation point for parameters used in the computer simulations was k 45 (since n=2048). LILIFCWA was able to extend that degradation point by approximately 50% (k 68). This improvement could be explained by taking a closer look at the block erasure point of LILIFC. Given a steady uniform distribution, there is a 50% probability that an active, even-parity sub-block would be available for absorption, thereby delaying the block erasure point and consequently reducing the write deficiency ratio. 26
10 Maguyon and Fernandez: Improve the Performance of the Layered Indexless Indexed Flash Code Visual inspection of the resulting graphs provided some additional and interesting insights into the behavior of LILIFCWA. The researchers noticed that with increasing percentage of domination, the difference between the write deficiency ratios of LILIFCWA and LILIFC generally became more prominent, especially in the k range of values between 24 and 72. To verify this observation, the sum of the actual differences between the write deficiency ratios was computed over some range of k values as expressed by the following formula. 72 k = 24 (? δ k,lilifcwa δ k,lilifc ) Additional dominated scenarios for both LILIFCWA and LILIFC were included in the simulations to verify the apparent trend in the write deficiency ratios of the two flash codes. More specifically, supporting data were generated for probabilities of 60%, 65%, 80%, 90%, and 95% dominated. The new set of results was consolidated with the original and summarized in Table 3. For each percentage of domination, the difference between the write deficiency ratios of LILIFCWA3 and LILIFC was computed using k = 24, 28,, 72. The sum of those differences (over the same k range) for each dominated scenario is reflected in the column Sum of Differences in Write Deficiency Ratio. The last column, Average Difference in Write Deficiency Ratio, was derived by dividing each sum of differences over the total number of k samples used (13, in this case). A visual representation of this trend is provided in Fig. 6. Table 3. Differences in write deficiency ratios between LILIFCWA (Version 3) and LILIFC with respect to the percentage of domination Domination (%) Sum of Differences in Write Deficiency Ratio Average Difference in Write Deficiency Ratio Uniform distribution % % % % % % % % (3) Fig. 6. Graph of differences in write deficiency ratios of LILIFCWA (Version 3) and LILIFC given the percentage of domination. Given the additional dominated scenarios, the upward trend in the difference looks evident. Again, the explanation for this behavior hinges on the ability of LILIFCWA to absorb sub-blocks. Whereas LILIFC would have already issued a block erase, LILIFCWA is more likely to find and absorb a useable (even-parity, non-flat) sub-block and reuse it many times to encode the dominant bit. Intuitively, the more dominant a bit is, the higher the chance that a useable sub-block absorbed by that bit would be less full (because of much fewer changes made by the previously-encoded, non-dominant bit) before absorption. Each write to the sub-block after absorption would be much more frequent and efficient, helping decrease the write deficiency ratio for LILIFCWA given higher percentages of domination. 27
11 Journal of Computers Vol. 26, No. 1, April Conclusion In this paper a new flash code, called Layered Indexless Indexed Flash Code with Absorption (LILIFCWA), is proposed. Theoretically, the proposed flash code is superior to the LILIFC and ILIFC. This was validated through computer simulations, which showed significant improvements in the performance of the LILIFCWA compared to LILIFC, while maintaining the latter s core and simplicity. Three versions of LILIFCWA were implemented, and each of these performed better than both ILIFC and LILIFC for cases involving steady uniform distribution and some steady dominated distributions. An interesting result in this study showed an increasing trend in the discrepancy between the write deficiency ratios of LILIFCWA and LILIFC as the percentage of domination rises in the dominated cases. Further studies can explore other possible encoding mechanisms that can be applied at the block erasure point of the ILIFC. Similarly, other flash codes can be considered, and modifications to the encoding mechanisms at their block erasure points can also be investigated. References [1] Y.R. Chen and Y.-S. Chen, "Context-Oriented Data Acquisition and Integration Platform for Internet of Things," Journal of Computers, vol. 23, no. 4, pp. 1-11, [2] P.C. Tseng, "How Ubiquitous Can We Get?," Journal of Computers, vol. 24, no. 3, pp , October [3] J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach, 5th ed., Morgan Kaufmann, [4] L. M. Grupp, A. M. Caulfield, J. Coburn, S. Swanson, E. Yaakobi, P. H. Siegel, J. K. Wolf, "Characterizing Flash Memory: Anomalies, Observations, and Applications," in MICRO, New York City, New York, USA, [5] A. Jiang, V. Bohossian and J. Bruck, "Floating Codes for Joint Information Storage in Write Asymmetric Memories," in IEEE International Symposium on Information Theory (ISIT), Nice, France, [6] R. Suzuki and T. Wadayama, "Layered Index-less Indexed Flash Codes for Improving Average Performance," in IEEE International Symposium on Information Theory (ISIT), [7] H. Mahdavifar, P. H. Siegel, A. Vardy, J. K. Wolf, E. Yaakobi, "A Nearly Optimal Construction of Flash Codes," in IEEE International Symposium on Information Theory (ISIT), Seoul, Korea, [8] H. R. Esling, R. R. L. Ortiz, P. L. Fernandez, "Bi-Modal Flash Code using Index-less Indexed Flash Code and Layered Index-less Indexed Flash Code," in Advanced Science and Technology Letters, [9] G. N. Corneby, L. K. Sanchez, M. J. Tan, P. Fernandez, Y. Kaji, "Phoenix Flash Code: Introducing the Absorption and Revival Operations for Reducing Flash Memory Write Deficiency," in 11th National Conference on IT Education (NCITE 2013), [10] M. J. T. Tan and Y. Kaji, "Applying Resizable Cluster Method in Binary-Indexed Flash Code," in SITA, [11] M. J. Tan, P. Fernandez, N. Salazar, J. Ty, Y. Kaji, "Multi-mode Encoding with Binary-Indexed Flash Code," IEICE Technical Report IT , vol. 112, pp , [12] Y. Kaji, "The Expected Write Deficiency of Index-Less Indexed Flash Codes," IEICE Transactions, Vols. 95-A, no. 12, pp , [13] T. Coughlin, "Flash Memory Enables Faster Applications and Content Access," 22 January [Online]. Available: [Accessed 24 July 2014]. 28
Trends in NAND Flash Memory Error Correction
Trends in NAND Flash Memory Error Correction June 2009 Eric Deal Cyclic Design Introduction NAND Flash is a popular storage media because of its ruggedness, power efficiency, and storage capacity. Flash
COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012
Binary numbers The reason humans represent numbers using decimal (the ten digits from 0,1,... 9) is that we have ten fingers. There is no other reason than that. There is nothing special otherwise about
CHAPTER 3 Boolean Algebra and Digital Logic
CHAPTER 3 Boolean Algebra and Digital Logic 3.1 Introduction 121 3.2 Boolean Algebra 122 3.2.1 Boolean Expressions 123 3.2.2 Boolean Identities 124 3.2.3 Simplification of Boolean Expressions 126 3.2.4
Data Structures and Algorithms
Data Structures and Algorithms Computational Complexity Escola Politècnica Superior d Alcoi Universitat Politècnica de València Contents Introduction Resources consumptions: spatial and temporal cost Costs
SLC vs. MLC: An Analysis of Flash Memory
SLC vs. MLC: An Analysis of Flash Memory Examining the Quality of Memory: Understanding the Differences between Flash Grades Table of Contents Abstract... 3 Introduction... 4 Flash Memory Explained...
Logic in Computer Science: Logic Gates
Logic in Computer Science: Logic Gates Lila Kari The University of Western Ontario Logic in Computer Science: Logic Gates CS2209, Applied Logic for Computer Science 1 / 49 Logic and bit operations Computers
Implementation of Buffer Cache Simulator for Hybrid Main Memory and Flash Memory Storages
Implementation of Buffer Cache Simulator for Hybrid Main Memory and Flash Memory Storages Soohyun Yang and Yeonseung Ryu Department of Computer Engineering, Myongji University Yongin, Gyeonggi-do, Korea
Record Storage and Primary File Organization
Record Storage and Primary File Organization 1 C H A P T E R 4 Contents Introduction Secondary Storage Devices Buffering of Blocks Placing File Records on Disk Operations on Files Files of Unordered Records
Chapter 8: Bags and Sets
Chapter 8: Bags and Sets In the stack and the queue abstractions, the order that elements are placed into the container is important, because the order elements are removed is related to the order in which
Addressing Fatal Flash Flaws That Plague All Flash Storage Arrays
Addressing Fatal Flash Flaws That Plague All Flash Storage Arrays By Scott D. Lowe, vexpert Co-Founder, ActualTech Media February, 2015 Table of Contents Introduction: How Flash Storage Works 3 Flash Storage
PartJoin: An Efficient Storage and Query Execution for Data Warehouses
PartJoin: An Efficient Storage and Query Execution for Data Warehouses Ladjel Bellatreche 1, Michel Schneider 2, Mukesh Mohania 3, and Bharat Bhargava 4 1 IMERIR, Perpignan, FRANCE [email protected] 2
Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer
Computers CMPT 125: Lecture 1: Understanding the Computer Tamara Smyth, [email protected] School of Computing Science, Simon Fraser University January 3, 2009 A computer performs 2 basic functions: 1.
THE SELECTION OF RETURNS FOR AUDIT BY THE IRS. John P. Hiniker, Internal Revenue Service
THE SELECTION OF RETURNS FOR AUDIT BY THE IRS John P. Hiniker, Internal Revenue Service BACKGROUND The Internal Revenue Service, hereafter referred to as the IRS, is responsible for administering the Internal
Mathematical Induction
Mathematical Induction (Handout March 8, 01) The Principle of Mathematical Induction provides a means to prove infinitely many statements all at once The principle is logical rather than strictly mathematical,
Solid State Drive Architecture
Solid State Drive Architecture A comparison and evaluation of data storage mediums Tyler Thierolf Justin Uriarte Outline Introduction Storage Device as Limiting Factor Terminology Internals Interface Architecture
Chapter 3. Cartesian Products and Relations. 3.1 Cartesian Products
Chapter 3 Cartesian Products and Relations The material in this chapter is the first real encounter with abstraction. Relations are very general thing they are a special type of subset. After introducing
File System Management
Lecture 7: Storage Management File System Management Contents Non volatile memory Tape, HDD, SSD Files & File System Interface Directories & their Organization File System Implementation Disk Space Allocation
Dynamic Thread Pool based Service Tracking Manager
Dynamic Thread Pool based Service Tracking Manager D.V.Lavanya, V.K.Govindan Department of Computer Science & Engineering National Institute of Technology Calicut Calicut, India e-mail: [email protected],
Why? A central concept in Computer Science. Algorithms are ubiquitous.
Analysis of Algorithms: A Brief Introduction Why? A central concept in Computer Science. Algorithms are ubiquitous. Using the Internet (sending email, transferring files, use of search engines, online
SLC vs MLC NAND and The Impact of Technology Scaling. White paper CTWP010
SLC vs MLC NAND and The mpact of Technology Scaling White paper CTWP010 Cactus Technologies Limited Suite C, 15/F, Capital Trade Center 62 Tsun Yip Street, Kwun Tong Kowloon, Hong Kong Tel: +852-2797-2277
Yaffs NAND Flash Failure Mitigation
Yaffs NAND Flash Failure Mitigation Charles Manning 2012-03-07 NAND flash is one of very few types of electronic device which are knowingly shipped with errors and are expected to generate further errors
Don t Let RAID Raid the Lifetime of Your SSD Array
Don t Let RAID Raid the Lifetime of Your SSD Array Sangwhan Moon Texas A&M University A. L. Narasimha Reddy Texas A&M University Abstract Parity protection at system level is typically employed to compose
5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.
1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The
Counters and Decoders
Physics 3330 Experiment #10 Fall 1999 Purpose Counters and Decoders In this experiment, you will design and construct a 4-bit ripple-through decade counter with a decimal read-out display. Such a counter
Formal Languages and Automata Theory - Regular Expressions and Finite Automata -
Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March
Chapter 10 Practical Database Design Methodology and Use of UML Diagrams
Chapter 10 Practical Database Design Methodology and Use of UML Diagrams Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 10 Outline The Role of Information Systems in
Lecture 2. Binary and Hexadecimal Numbers
Lecture 2 Binary and Hexadecimal Numbers Purpose: Review binary and hexadecimal number representations Convert directly from one base to another base Review addition and subtraction in binary representations
International Journal of Advanced Research in Computer Science and Software Engineering
Volume 3, Issue 7, July 23 ISSN: 2277 28X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Greedy Algorithm:
COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design
PH-315 COMINATIONAL and SEUENTIAL LOGIC CIRCUITS Hardware implementation and software design A La Rosa I PURPOSE: To familiarize with combinational and sequential logic circuits Combinational circuits
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 17 Shannon-Fano-Elias Coding and Introduction to Arithmetic Coding
NAND Basics Understanding the Technology Behind Your SSD
03 Basics Understanding the Technology Behind Your SSD Although it may all look the same, all is not created equal: SLC, 2-bit MLC, 3-bit MLC (also called TLC), synchronous, asynchronous, ONFI 1.0, ONFI
Ready Time Observations
VMWARE PERFORMANCE STUDY VMware ESX Server 3 Ready Time Observations VMware ESX Server is a thin software layer designed to multiplex hardware resources efficiently among virtual machines running unmodified
NAND Flash Memory Reliability in Embedded Computer Systems
WHITE PAPER NAND Flash Memory Reliability in Embedded Computer Systems Ian Olson INTRODUCTION NAND flash memory named after the NAND logic gates it is constructed from is used for nonvolatile data storage
Network (Tree) Topology Inference Based on Prüfer Sequence
Network (Tree) Topology Inference Based on Prüfer Sequence C. Vanniarajan and Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology Madras Chennai 600036 [email protected],
An Adaptive Decoding Algorithm of LDPC Codes over the Binary Erasure Channel. Gou HOSOYA, Hideki YAGI, Toshiyasu MATSUSHIMA, and Shigeichi HIRASAWA
2007 Hawaii and SITA Joint Conference on Information Theory, HISC2007 Hawaii, USA, May 29 31, 2007 An Adaptive Decoding Algorithm of LDPC Codes over the Binary Erasure Channel Gou HOSOYA, Hideki YAGI,
Fourth generation techniques (4GT)
Fourth generation techniques (4GT) The term fourth generation techniques (4GT) encompasses a broad array of software tools that have one thing in common. Each enables the software engineer to specify some
2) Write in detail the issues in the design of code generator.
COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage
Locating and Decoding EAN-13 Barcodes from Images Captured by Digital Cameras
Locating and Decoding EAN-13 Barcodes from Images Captured by Digital Cameras W3A.5 Douglas Chai and Florian Hock Visual Information Processing Research Group School of Engineering and Mathematics Edith
TU e. Advanced Algorithms: experimentation project. The problem: load balancing with bounded look-ahead. Input: integer m 2: number of machines
The problem: load balancing with bounded look-ahead Input: integer m 2: number of machines integer k 0: the look-ahead numbers t 1,..., t n : the job sizes Problem: assign jobs to machines machine to which
Analysis of Compression Algorithms for Program Data
Analysis of Compression Algorithms for Program Data Matthew Simpson, Clemson University with Dr. Rajeev Barua and Surupa Biswas, University of Maryland 12 August 3 Abstract Insufficient available memory
Technology Update White Paper. High Speed RAID 6. Powered by Custom ASIC Parity Chips
Technology Update White Paper High Speed RAID 6 Powered by Custom ASIC Parity Chips High Speed RAID 6 Powered by Custom ASIC Parity Chips Why High Speed RAID 6? Winchester Systems has developed High Speed
How To Fix A 3 Bit Error In Data From A Data Point To A Bit Code (Data Point) With A Power Source (Data Source) And A Power Cell (Power Source)
FPGA IMPLEMENTATION OF 4D-PARITY BASED DATA CODING TECHNIQUE Vijay Tawar 1, Rajani Gupta 2 1 Student, KNPCST, Hoshangabad Road, Misrod, Bhopal, Pin no.462047 2 Head of Department (EC), KNPCST, Hoshangabad
SanDisk Lab Validation: VMware vsphere Swap-to-Host Cache on SanDisk SSDs
WHITE PAPER SanDisk Lab Validation: VMware vsphere Swap-to-Host Cache on SanDisk SSDs August 2014 Western Digital Technologies, Inc. 951 SanDisk Drive, Milpitas, CA 95035 www.sandisk.com 2 Table of Contents
256 4 = 4,294,967,296 ten billion. 256 16 = 18,446,744,073,709,551,616 ten quintillion. IP Addressing. IPv4 Address Classes
IP Addressing With the exception of multicast addresses, Internet addresses consist of a network portion and a host portion. The network portion identifies a logical network to which the address refers,
Symbol Tables. Introduction
Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The
SLC vs MLC: Proper Flash Selection for SSDs in Industrial, Military and Avionic Applications. A TCS Space & Component Technology White Paper
SLC vs MLC: Proper Flash Selection for SSDs in Industrial, Military and Avionic Applications A TCS Space & Component Technology White Paper Introduction As with most storage technologies, NAND Flash vendors
Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2
Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of
CMOS Binary Full Adder
CMOS Binary Full Adder A Survey of Possible Implementations Group : Eren Turgay Aaron Daniels Michael Bacelieri William Berry - - Table of Contents Key Terminology...- - Introduction...- 3 - Design Architectures...-
An introduction to Value-at-Risk Learning Curve September 2003
An introduction to Value-at-Risk Learning Curve September 2003 Value-at-Risk The introduction of Value-at-Risk (VaR) as an accepted methodology for quantifying market risk is part of the evolution of risk
NEW adder cells are useful for designing larger circuits despite increase in transistor count by four per cell.
CHAPTER 4 THE ADDER The adder is one of the most critical components of a processor, as it is used in the Arithmetic Logic Unit (ALU), in the floating-point unit and for address generation in case of cache
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
INTRODUCTION The collection of data that makes up a computerized database must be stored physically on some computer storage medium.
Chapter 4: Record Storage and Primary File Organization 1 Record Storage and Primary File Organization INTRODUCTION The collection of data that makes up a computerized database must be stored physically
Load Balancing on a Non-dedicated Heterogeneous Network of Workstations
Load Balancing on a Non-dedicated Heterogeneous Network of Workstations Dr. Maurice Eggen Nathan Franklin Department of Computer Science Trinity University San Antonio, Texas 78212 Dr. Roger Eggen Department
CALCULATIONS & STATISTICS
CALCULATIONS & STATISTICS CALCULATION OF SCORES Conversion of 1-5 scale to 0-100 scores When you look at your report, you will notice that the scores are reported on a 0-100 scale, even though respondents
Measurement with Ratios
Grade 6 Mathematics, Quarter 2, Unit 2.1 Measurement with Ratios Overview Number of instructional days: 15 (1 day = 45 minutes) Content to be learned Use ratio reasoning to solve real-world and mathematical
Graph Theory Problems and Solutions
raph Theory Problems and Solutions Tom Davis [email protected] http://www.geometer.org/mathcircles November, 005 Problems. Prove that the sum of the degrees of the vertices of any finite graph is
Programming NAND devices
Technical Guide Programming NAND devices Kelly Hirsch, Director of Advanced Technology, Data I/O Corporation Recent Design Trends In the past, embedded system designs have used NAND devices for storing
Five High Order Thinking Skills
Five High Order Introduction The high technology like computers and calculators has profoundly changed the world of mathematics education. It is not only what aspects of mathematics are essential for learning,
Chapter 4 Software Lifecycle and Performance Analysis
Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and
Lecture 2: Universality
CS 710: Complexity Theory 1/21/2010 Lecture 2: Universality Instructor: Dieter van Melkebeek Scribe: Tyson Williams In this lecture, we introduce the notion of a universal machine, develop efficient universal
GOAL-BASED INTELLIGENT AGENTS
International Journal of Information Technology, Vol. 9 No. 1 GOAL-BASED INTELLIGENT AGENTS Zhiqi Shen, Robert Gay and Xuehong Tao ICIS, School of EEE, Nanyang Technological University, Singapore 639798
What Types of ECC Should Be Used on Flash Memory?
What Types of ECC Should Be Used on Flash Memory? Application 1. Abstract NOR Flash normally does not need ECC (Error-Correcting Code). On the other hand, NAND requires ECC to ensure data integrity. NAND
BOOLEAN ALGEBRA & LOGIC GATES
BOOLEAN ALGEBRA & LOGIC GATES Logic gates are electronic circuits that can be used to implement the most elementary logic expressions, also known as Boolean expressions. The logic gate is the most basic
Index Terms Domain name, Firewall, Packet, Phishing, URL.
BDD for Implementation of Packet Filter Firewall and Detecting Phishing Websites Naresh Shende Vidyalankar Institute of Technology Prof. S. K. Shinde Lokmanya Tilak College of Engineering Abstract Packet
THREE DIMENSIONAL REPRESENTATION OF AMINO ACID CHARAC- TERISTICS
THREE DIMENSIONAL REPRESENTATION OF AMINO ACID CHARAC- TERISTICS O.U. Sezerman 1, R. Islamaj 2, E. Alpaydin 2 1 Laborotory of Computational Biology, Sabancı University, Istanbul, Turkey. 2 Computer Engineering
Load Balancing and Switch Scheduling
EE384Y Project Final Report Load Balancing and Switch Scheduling Xiangheng Liu Department of Electrical Engineering Stanford University, Stanford CA 94305 Email: [email protected] Abstract Load
Algorithms for Interference Sensing in Optical CDMA Networks
Algorithms for Interference Sensing in Optical CDMA Networks Purushotham Kamath, Joseph D. Touch and Joseph A. Bannister {pkamath, touch, joseph}@isi.edu Information Sciences Institute, University of Southern
Lecture 15. IP address space managed by Internet Assigned Numbers Authority (IANA)
Lecture 15 IP Address Each host and router on the Internet has an IP address, which consist of a combination of network number and host number. The combination is unique; no two machines have the same
EMC Business Continuity for Microsoft SQL Server Enabled by SQL DB Mirroring Celerra Unified Storage Platforms Using iscsi
EMC Business Continuity for Microsoft SQL Server Enabled by SQL DB Mirroring Applied Technology Abstract Microsoft SQL Server includes a powerful capability to protect active databases by using either
Resource Allocation Schemes for Gang Scheduling
Resource Allocation Schemes for Gang Scheduling B. B. Zhou School of Computing and Mathematics Deakin University Geelong, VIC 327, Australia D. Walsh R. P. Brent Department of Computer Science Australian
Comparison of Request Admission Based Performance Isolation Approaches in Multi-tenant SaaS Applications
Comparison of Request Admission Based Performance Isolation Approaches in Multi-tenant SaaS Applications Rouven Kreb 1 and Manuel Loesch 2 1 SAP AG, Walldorf, Germany 2 FZI Research Center for Information
Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:
CSE341T 08/31/2015 Lecture 3 Cost Model: Work, Span and Parallelism In this lecture, we will look at how one analyze a parallel program written using Cilk Plus. When we analyze the cost of an algorithm
The PageRank Citation Ranking: Bring Order to the Web
The PageRank Citation Ranking: Bring Order to the Web presented by: Xiaoxi Pang 25.Nov 2010 1 / 20 Outline Introduction A ranking for every page on the Web Implementation Convergence Properties Personalized
Fast Sequential Summation Algorithms Using Augmented Data Structures
Fast Sequential Summation Algorithms Using Augmented Data Structures Vadim Stadnik [email protected] Abstract This paper provides an introduction to the design of augmented data structures that offer
Low-Power Error Correction for Mobile Storage
Low-Power Error Correction for Mobile Storage Jeff Yang Principle Engineer Silicon Motion 1 Power Consumption The ECC engine will consume a great percentage of power in the controller Both RAID and LDPC
(Refer Slide Time: 00:01:16 min)
Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control
Take-Home Exercise. z y x. Erik Jonsson School of Engineering and Computer Science. The University of Texas at Dallas
Take-Home Exercise Assume you want the counter below to count mod-6 backward. That is, it would count 0-5-4-3-2-1-0, etc. Assume it is reset on startup, and design the wiring to make the counter count
Linear Programming for Optimization. Mark A. Schulze, Ph.D. Perceptive Scientific Instruments, Inc.
1. Introduction Linear Programming for Optimization Mark A. Schulze, Ph.D. Perceptive Scientific Instruments, Inc. 1.1 Definition Linear programming is the name of a branch of applied mathematics that
Figure 1: Graphical example of a mergesort 1.
CSE 30321 Computer Architecture I Fall 2011 Lab 02: Procedure Calls in MIPS Assembly Programming and Performance Total Points: 100 points due to its complexity, this lab will weight more heavily in your
6.4 Normal Distribution
Contents 6.4 Normal Distribution....................... 381 6.4.1 Characteristics of the Normal Distribution....... 381 6.4.2 The Standardized Normal Distribution......... 385 6.4.3 Meaning of Areas under
Research on the UHF RFID Channel Coding Technology based on Simulink
Vol. 6, No. 7, 015 Research on the UHF RFID Channel Coding Technology based on Simulink Changzhi Wang Shanghai 0160, China Zhicai Shi* Shanghai 0160, China Dai Jian Shanghai 0160, China Li Meng Shanghai
Video Streaming with Network Coding
Video Streaming with Network Coding Kien Nguyen, Thinh Nguyen, and Sen-Ching Cheung Abstract Recent years have witnessed an explosive growth in multimedia streaming applications over the Internet. Notably,
WRITING PROOFS. Christopher Heil Georgia Institute of Technology
WRITING PROOFS Christopher Heil Georgia Institute of Technology A theorem is just a statement of fact A proof of the theorem is a logical explanation of why the theorem is true Many theorems have this
Solid State Drive Technology
Technical white paper Solid State Drive Technology Differences between SLC, MLC and TLC NAND Table of contents Executive summary... 2 SLC vs MLC vs TLC... 2 NAND cell technology... 2 Write amplification...
Solution of Linear Systems
Chapter 3 Solution of Linear Systems In this chapter we study algorithms for possibly the most commonly occurring problem in scientific computing, the solution of linear systems of equations. We start
3 Some Integer Functions
3 Some Integer Functions A Pair of Fundamental Integer Functions The integer function that is the heart of this section is the modulo function. However, before getting to it, let us look at some very simple
SLC vs MLC: Which is best for high-reliability apps?
SLC vs MLC: Which is best for high-reliability apps? Here's an examination of trade-offs, with an emphasis on how they affect the reliability of storage targeted at industrial, military and avionic applications.
CHAPTER 11: Flip Flops
CHAPTER 11: Flip Flops In this chapter, you will be building the part of the circuit that controls the command sequencing. The required circuit must operate the counter and the memory chip. When the teach
Transport Layer Protocols
Transport Layer Protocols Version. Transport layer performs two main tasks for the application layer by using the network layer. It provides end to end communication between two applications, and implements
Plug and Play Solution for AUTOSAR Software Components
Plug and Play Solution for AUTOSAR Software Components The interfaces defined in the AUTOSAR standard enable an easier assembly of the ECU application out of components from different suppliers. However,
AC 2007-2027: A PROCESSOR DESIGN PROJECT FOR A FIRST COURSE IN COMPUTER ORGANIZATION
AC 2007-2027: A PROCESSOR DESIGN PROJECT FOR A FIRST COURSE IN COMPUTER ORGANIZATION Michael Black, American University Manoj Franklin, University of Maryland-College Park American Society for Engineering
arxiv:1112.0829v1 [math.pr] 5 Dec 2011
How Not to Win a Million Dollars: A Counterexample to a Conjecture of L. Breiman Thomas P. Hayes arxiv:1112.0829v1 [math.pr] 5 Dec 2011 Abstract Consider a gambling game in which we are allowed to repeatedly
A PPM-like, tag-based branch predictor
Journal of Instruction-Level Parallelism 7 (25) 1-1 Submitted 1/5; published 4/5 A PPM-like, tag-based branch predictor Pierre Michaud IRISA/INRIA Campus de Beaulieu, Rennes 35, France [email protected]
The last three chapters introduced three major proof techniques: direct,
CHAPTER 7 Proving Non-Conditional Statements The last three chapters introduced three major proof techniques: direct, contrapositive and contradiction. These three techniques are used to prove statements
A Dynamic Programming Approach for Generating N-ary Reflected Gray Code List
A Dynamic Programming Approach for Generating N-ary Reflected Gray Code List Mehmet Kurt 1, Can Atilgan 2, Murat Ersen Berberler 3 1 Izmir University, Department of Mathematics and Computer Science, Izmir
