CHAPTER 4 BLOOM FILTER

Size: px
Start display at page:

Download "CHAPTER 4 BLOOM FILTER"

Transcription

1 54 CHAPTER 4 BLOOM FILTER 4.1 INTRODUCTION Bloom filter was formulated by Bloom (1970) and is used widely today for different purposes including web caching, intrusion detection, content based routing, databases and computer networks (Broder and Mitzenmacher 2005). The theory behind the Bloom filter is described in this section. At first, the Bloom filter is described and then its enhancement to meet the requirement of string detection is explained. A Bloom filter offers an attractive choice for string matching. It is a randomized technique to test membership of a string in a group of given strings. Using this technique, a group of strings is compressed at first by calculating multiple hash functions over each string. Then, compressed set of strings is stored using memory. This set can be queried to find out if a given string belongs to it. The two important properties of a Bloom filter that make it a viable solution for string matching are the following: Scalability: Bloom filter uses a constant amount of memory to compress each string irrespective of the length of the original string. Thus, large strings can be stored with smaller memory space. This makes it highly scalable in terms of memory usage. Speed: The amount of computation involved in detecting a string using Bloom filter is constant. This computation is a calculation of hash

2 55 functions and the corresponding memory lookups. Efficient hash functions can be implemented in hardware easily with little resource consumption. Hence, a hardware implementation of Bloom filter can do string matching at high speeds. Bloom filters use less memory space to store the compressed strings. The amount of memory depends on the number of strings being compressed and typically is few megabits. For instance, to store 10,000 strings, around 200k bits are required. Almost all modern FPGAs come with multi port embedded memory blocks which can be utilized for constructing Bloom filters. However, the real reason for using FPGAs stems from the requirement of memory reconfiguration for Bloom filters. It is obvious that a Bloom filter is maintained for detecting strings of a particular length. If the database of strings to be detected has non uniform number of strings for each unique string length, then the Bloom filters need to be tuned to accommodate this non uniformity and achieve the optimal performance. Moreover, since the string length distribution can change over time, as the Bloom filters need to be retuned to maintain optimality which involves reallocation of the Block memories and hash functions. While doing this, the underlying hardware needs to change. Hence, the FPGAs prove to be extremely effective in such a scenario. 4.2 BLOOM FILTER THEORY The theory behind Bloom filter is described in this section. Given a string x, the Bloom filter computes k hash functions on it producing hash values ranging from 1 to m. It then sets k bits in a m bit long vector at the addresses corresponding to the k hash values. The same procedure is repeated for all the members of the set. This process is called programming of the filter. The query process is similar to programming, where a string whose membership to be verified is given as input to the filter. The Bloom filter generates k hash values using the same hash functions which are used to

3 56 program the filter. The bits in the m bit long vector at the locations corresponding to the k hash values are looked up. If at least one of these k bits is found not set then the string is declared to be a non-member of the set. If all the bits are found to be set then the string is said to belong to the set with a certain probability. This uncertainty in the membership comes from the fact that those k bits in the m bit vector can be set by any of the n members. Thus, finding a bit set does not necessarily imply that it was set by the particular string being queried. Subsequent sections explain the programming and querying process in detail Programming a Bloom Filter A Bloom filter is essentially a bit vector of length m which is used to efficiently represent a set of bit-strings. Given a set of strings S, with n members, a Bloom filter is programmed as follows. For each bit string X, in S, k hash functions, h 1 ()...h k (), are computed on x producing k values each ranging from 1 to m. Each of these values addresses a single bit in the m bit vector; hence each bit-string x causes k bits in the m-bit vector to be set to 1. It is to be noted that if one of the k hash values addresses a bit that is already set to 1, then that bit is not changed. Figure 4.1 and 4.2 illustrate Bloom filter programming. Two bit-strings, x and y are programmed in the Bloom filter with k = 3 hash functions and m = 16 bits in the array. It is to be noted that different strings can have overlapping bit patterns. The following pseudo-code describes adding a bit-string, x, to a Bloom filter. Pseudo-code for programming the Bloom filter is given in Table 4.1. Table 4.1 Pseudo-code for programming the Bloom filter BF Prog (x) i. for (i=1 to k) ii. Vector[hi(x)] 1

4 57 Figure 4.1 Programming a string x in the Bloom filter where k=3 and m=16 Figure 4.2 Programming a string y in the Bloom filter where k=3 and m=16

5 Querying a Bloom Filter Querying the Bloom filter for set membership of a given bit-string, x, is similar to the programming process. Given bit-string x, k hash values are generated using the same hash functions used to program the filter. The bits in the m-bit vector at the locations corresponding to the k hash values are checked. If at least one of the k bits is 0, then the bit-string is declared to be a non-member of the set, as discussed in Figure 4.3. If all the bits are found to be 1, then the bit-string is said to belong to the set with a certain probability, as shown in Figure 4.4. If all the k bits are found to be set and x is not a member of S, then it is said to be a false positive. The following pseudo-code describes the query process. Pseudo-code for querying the Bloom filter is given in Table 4.2. Table 4.2 Pseudo-code for querying the Bloom filter BF Query (x) i. for (i=1 to k) ii. if (Vector[hi(x)]=0) return false iii. return true Figure 4.3 Querying a string z in the Bloom filter

6 59 Figure 4.4 Querying a string w in the Bloom filter Figure 4.5 False positive probability The ambiguity in membership comes from the fact that the k bits in the m-bit vector can be set by any of the n members of S. For instance, as given in Figure 4.5, q maps to all the bits which were set by x and y. Although q S, the filter shows a match. Thus, finding a bit set does not necessarily

7 60 imply that it was set by the particular bit-string being queried. However, finding a 0 bit certainly implies that the bit-string does not belong to the set; if it was a member, then all k-bits would have been set when the Bloom filter was programmed False Positive Probability This section derives the mathematical representation of the false positive probability i.e., the probability of finding all the k lookup bits set for a bit-string that is not programmed. The probability that a random bit of the m-bit vector is set to 1 by a hash function is simply m 1. The probability that it is not set are set to 0 is 1 1 m. The probability that it is not set by any of the n n 1 members of x is 1. Since each of the bit-strings sets k bits in the m nk 1 vector, the probability becomes 1. The probability that this bit is 1 m nk 1 becomes 1 1. For a bit of string to be detected as a possible m member of the set, all k bit locations generated by the hash functions need to be 1. The probability that this happens, f, is given by Equation (4.1). f k nk m (4.1) For the large values of m the above equation reduces to Equation (4.2). k nk f 1 e m (4.2)

8 61 This probability is independent of the input bit-string and is termed the false positive probability. The false positive probability can be reduced by choosing appropriate values for m and k for a given size of the member set, n. It is clear that the size of the bit-vector, m, needs to be much larger than the m size of the bit-string set n. For the given ratio, the false positive probability n can be reduced by increasing the number of hash functions, k. In the optimal case, when false positive probability is minimized with respect to k, the following relationship is obtained. m k ln 2 (4.3) n The false positive probability at this optimal point is given by Equation (4.4). f k 1 (4.4) 2 It should be noted that if the false positive probability is to be fixed, then the size of the filter, m, needs to scale linearly with the size of the bit-string set, n. In the optimally configured Bloom filter, the probability of finding a bit set is 0.5. Tables 4.3, 4.4, 4.5 and Figure 4.6 give the relationship between false positive ratios and combinations of m/n and k. 4.3 PRACTICAL HASH FUNCTIONS A hash function is a well defined procedure or mathematical function that converts a large, possibly variable-sized amount of data into a small datum, usually a single integer that may serve as an index to an array. The values returned by a hash function are called either as hash values, hash codes, hash sums, checksums or simply hashes.

9 62 Table 4.3 False positive rate under various m/n and k combinations m/n k k=1 k=2 k=3 k=4 k=5 k=6 k=7 k= E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E-06

10 63 Table 4.4 False positive rate under various m/n and k combinations m/n k k=9 k=10 k=11 k=12 k=13 k=14 k=15 k= E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E-07 Table 4.5 False positive rate under various m/n and k combinations m/n k k=17 k=18 k=19 k=20 k=21 k=22 k=23 k= E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E-07

11 64 Figure 4.6 False positive probability (f) Vs Number of hash functions (k) Hash functions are mostly used to speed up table lookup or data comparison tasks such as signature detection which find broad range of applications in network domain. Although the idea was conceived in the 1950s, the design of good hash functions is still a topic of active research (Knuth and Donald 1973). In this section, the effects of utilizing different hash functions in Bloom filters are analyzed. Performances of different hash functions in hardware are investigated by Ramakrishna et al (1997). Three different types of hash functions in Bloom filters were utilized to implement in FPGA.

12 H3 Class of Universal Hash Function Universal class of hash functions are first introduced by Carter et al (2004). They defined a special class of hash functions known as class H3. The definition of H3 Class is given as follows. Given any string X, consisting of b bits, X b = <x1, x2, x3,..., xb> ith hash function over the string X is defined as hi(x) = di1 and x1 xor di2 and x2 xor di3 and x3 xor.. dib and xb (4.5) where dij s are random coefficients uniformly distributed between 1 to size of the lookup vector, m, and xk is the kth bit of the input string. and is a bit by bit AND operation, and xor is a logical Exclusive OR (XOR) operation. A block diagram of the H3 class of hash functions implemented is given in Figure 4.7. Figure 4.7 A block diagram of a H3 class of universal hash function Input is shifted to one bit left till 16 bits are handled. Each bit is logically AND-ed with the random number. At the end, all AND results are XOR-ed together to get a hash value. This type of hash functions is linear transformations and as a result they distribute the index values randomly.

13 66 Implementation of these type of hash functions require sixteen 2-input AND gates and a single 16-input XOR gate for a 16 bit signature. They produce key values as the same size of the input. Pseudocode to implement H3 class of hash functions is given in Table 4.6. Table 4.6 Pseudo-code for H3 class of universal hash function for each signature: i. generate as many random numbers as the bits in the signature ii. left shift the signature to get to the specified bit iii. AND each shifted signature with the random number iv. XOR all the results of AND s Bit Extraction Hash Function This type of hash functions consists of selecting j bits out of b bits of the signature. Depending on the selection fashion of these bits out of input signature, they are classified as regular and randomized bit extraction hash functions. Since regular bit extraction hash functions are constrained in number by the input length, randomized bit extraction hash functions are used. Definition of a randomized bit extraction hash function is as follows. Given any string X, consisting of b bits, X b = <x1, x2, x3,..., xb> ith hash function over the string X is defined as hi(x) = <xl 1, xl 2, xl 3,..., xl j > (4.6) where l j s are random bit positions uniformly distributed between one to size of the input signature, b bits and xl j is the input bit located at l j. A block diagram of randomized bit extraction hash functions implemented is

14 67 illustrated in Figure 4.8. Implementation of these types of hash functions requires eight 2-input AND gates and a single 8-input XOR gate for a 16 bit signature. A shifter is necessary to left shift the bits in input as specified by random number, l j. Figure 4.8 A block diagram of bit extraction hash function These types of hash functions produce key values shorter in bits than the size of the signature. They distribute keys randomly to the bit positions to extract the bits based on random numbers. Pseudocode to simulate this hash function is given in Table 4.7. Table 4.7 Pseudo-code for bit extraction hash function for each signature: i. generate as many random numbers as the bits in the indices ii. right shift the signature to get to random bit position iii. adjust the bit at random position to the correct position at index by left or right shifting iv. XOR all the results of shifting

15 Hash Functions from XOR Method These types of hash functions partition the b bit long input signature into j bits of segments. The segments are XOR-ed to get the hash value. The segments can be formed either in a regular manner or randomly like bit extraction hash functions. To have random indices, random segment forming hash functions are used. The definition of the hash functions from XOR method is as follows. Given any string X, consisting of b bits, X = <x1, x2, x3,..., xb> ith hash function over the string X is defined as hi(x) = (xs1 xor xs2 )(xs3 xor xs4 )..., (xsj-1 xor xsj ) (4.7) where sj s are the uniformly distributed random bit positions in the input string. xsj are the bits at the position specified by sj. There are two segments of length j-bits are formed and XOR-ed. Figure 4.9 illustrates a block diagram of a hash function from XOR method. Implementation of these types of hash functions requires a shifter to get to the bit at the random position, plus eight 2- input XOR gates and an 8-input XOR gate. The length of the resulting hash value is smaller in bits than the input. Figure 4.9 A block diagram of hash function using XOR method

16 69 However they map the inputs to the hash values in a completely random manner due to the random selection of bits from input. Pseudo code to implement these types of hash functions is given in Table 4.8. Table 4.8 Pseudo-code for XOR method hash function for each signature: i. generate twice as many random numbers as the bits in the indices ii. right shift the signature to get the random bit positions for two segments iii. XOR the bits at each segment iv. right shift the XOR result to get correct position FPGA Implementation of hash functions To meet today s high-speed networks with line speeds of 10 GBPS and beyond, FPGA implementation is a feasible solution. Performances of three different hash functions in hardware were investigated. Table 4.9 FPGA implementation of hash functions Hash Function LUTs Flip Flops Block RAMs Universal 2990 (4.4%) Bit Extraction 4550 (9%) XOR Method 3050 (4.5%) It utilizes three different types of hash functions in Bloom filters to examine the effects of them on the performance of low power architecture. Logical designs of low power look up Bloom filter with respect to the types of

17 70 hash functions were implemented on Xilinx XCV2000E FPGA and utilization of LUTs, Flip Flops and Block Random Access Memory (RAMs) are summarized in the Table 4.9. Device utilization is higher in the type of bit extraction hash function. Implementation results of low power Bloom filter using three different hash functions are presented in the Table 4.9. Based on the results, Universal H3 hash function is selected for further power analysis of low power lookup Bloom filter. 4.4 TYPICAL BLOOM FILTER ARCHITECTURE A block diagram of a typical Bloom filter is illustrated in Figure Given a string X, which is a member of the signature set, a Bloom filter computes k hash values on the input X and d which are uniformly distributed between 1 to number of hash functions, k. Then it uses these hash values as index to the m-bit long lookup vector. It sets the bits corresponding to the index given by the hash values computed. It repeats this procedure for each member of the signature set. For an input string Y, the Bloom filter computes k hash values by utilizing the same hash functions used in programming of the bloom filter. Figure 4.10 Typical Bloom Filter

18 71 The Bloom filter looks up the bit values located on the offsets (computed hash values) on the bit vector. If it finds any bit unset at those addresses, it declares the input string to be a non member of the signature set, which is called a mismatch. Otherwise, it finds that all the bits are set and concludes that input string may be a member of the signature set with a false positive probability, which is called a match. 4.5 DRAWBACK OF DSLT BLOOM FILTER A Bloom filter never produces false negatives. If it finds that an input certainly does not belong to the signature set, then it decides that the input is a non member. However, it may produce false positives when a non member input results as a member of the set. Following the analysis of Dharampurikar et al (2004), the false positive probability f is calculated by (4.2). In order to minimize the false positive probability, the value of m must be quite larger than n. For a fixed value of m/n, k must be large enough such that f gets minimized. Since the number of hash functions in Bloom filters is large to reduce the false positive probability, it is intuitive that their total power consumptions are large. During the programming phase of the Bloom filter, not much can be done to reduce the power consumption; otherwise Bloom filter will produce many false positives. However, while performing lookups over the Bloom filter, the number of hash functions used to produce a decision can be reduced significantly. This is because a Bloom filter never makes false negatives, and it is enough to find a zero on the m-bit long lookup vector to conclude that there is a mismatch. Ilhan Kaya and Taskin Kocak (2006) call this type of lookup operation as low power lookup technique. The architecture to support such a lookup operation for a DSLT is illustrated in Figure 4.11 where the number of hash functions per stage (r) is k/2. The drawback of the DSLT scheme presented by Ilhan Kaya and Taskin Kocak (2006) is the ignorance of further investigation with more

19 72 divisible stages in look up scheme. This research work continues the investigation of the look up technique with further stages where the number of hash functions per stage (r) are 1, k/2, k/4 and k/8. Figure 4.11 DSLT Bloom filter architecture where hash per stage r = k/2 4.6 MULTI STAGE LOOK UP TECHNIQUE BASED BLOOM FILTER ARCHITECTURE Low power Bloom filter architecture is introduced where r = k/4 is illustrated in Figure If a match is attained in the first stage itself then 3/4 of the hash calculations are minimized when half of the hash calculations are reduced. In the similar fashion, low power architecture with k/8 is considered for power analysis. Figure 4.13 illustrates the architecture where the number of hash functions per stage r = 1. H3 Class of Universal Hash function was used in the hash calculations of MSLT.

20 73 Figure 4.12 MSLT Bloom filter architecture where hash per stage r = k/4 Figure 4.13 MSLT Bloom filter architecture where hash per stage r = POWER ANALYSIS OF MSLT ARCHITECTURES With reference to the discussion in the section 4.4.4, Universal Hash function is selected for the implementation of MSLTs. Basic functional

21 74 module of Bloom filter using Universal H3 hash function was implemented in 60nm technology (Figure 4.14) with the following parameters as shown in Table 4.10 to derive the power consumption. Average power calculated will be used in the power analysis of low power Bloom filter architecture in this section. Table 4.10 Design specifications Technology CMOS 60 nm Power Supply 5V Metal Layers 6 Avg. Power nS Figure 4.14 Physical layout of basic functional module of Bloom filter using H3 hash function A theoretical approach is followed to analyze and compare the power consumptions of the different lookup operations available through Bloom filter architectures presented in the section 4.5 and 4.6. A single Bloom filter shown in Figure 4.10 uses k hash functions in order to make a decision on the input given. Hence, the power consumption of a Bloom filter when performing a regular lookup operation is a summation of the power

22 75 consumptions of each of the hash value computations, P Hi, plus the power consumed accessing the memory for each hash value computed, P Q, plus the power consumed by an AND gate. k P (P P ) P (4.8) BFreg Hi Q AND i1 Power consumption of an AND gate is ignored hereafter, since it is minimal when compared to the power used by the hash functions. Power required to query m bit vector is approximately constant for each index calculated by any of the hash functions. The power equation for a single Bloom filter simply becomes the total power used by the hash functions and the power consumed by querying the m bit vector for each hash value calculation. k P (P P) (4.9) BFreg Hi Q i1 The power consumption of a regular lookup low power architecture presented in Figure 4.13 is compared with 16-bit implementation of hash functions. In section 4.4.4, the results of hardware implementations of all practical hash functions are presented which recommend universal class of hash functions called H3 is suitable for hardware applications. Hence, all of the k hash functions are of type 8-bit H3 class of hash functions. Then Equation (4.9) becomes PBFreg k.(ph8 P) Q (4.10) To derive the power consumption of the new architecture proposed, a mathematical analysis similar to the analysis done in Mitzenmacher (2002) is followed. At first the probability of match in the first stage is derived. The

23 76 probability that a bit is still unset after all the signatures are programmed into the Bloom filter by using k independent hash functions is. kn 1 1 e m kn m (4.11) where 1 / m represents any one of the m bits set by a single hash function operating on a single signature. Then (1 1/m) is the probability that the bit is unset after a single hash value computation with a single signature. To remain unset, it should not be set by any of the k hash functions each operating on all signatures in the signature set. Consequently, the probability that any one of the bits set is kn m 1 1 e (4.12) In order to produce a match in the first stage, the bits indexed by all r of the independent random hash functions should be set. So the match probability of the first stage is, represented as p, p r 1 1 1e i1 kn r m (4.13) r The mismatch probability of the first stage is 1-p, 11e kn m r (4.14) With a probability of (1-p) the first stage of the hash functions in the Bloom filter will produce a mismatch when performing a lookup operation. Otherwise, the first stage produces a match, and then the second stage is used

24 77 to compare the input with the signature sought as it is suggested by the architecture proposed. Therefore the power consumption of a Bloom filter shown in Figure 4.11 where r = k/2 is given by BFr k/2 IstStage 2ndstage P P P Match P (4.15) k/2 k (4.16) P P P p P P BFrk/2 Hi Q Hi Q i1 k j 1 2 k PBFrk/2 PH8 PQ 1p 2 k 2 (4.17) Power consumption of a Bloom filter where r = k/4 and r = k/8 are given by Equations (4.18) and (4.19) respectively. k PBFrk/4 PH8 PQ 1p p p 4 k k 3k (4.18) k PBFrk/8 PH8 PQ 1p p p 1p p p p 8 k k 3k k 3k 3k 7k (4.19) Given by the equation 4.20 (Ilhan Kaya and Taskin Kocak 2006), The Power Saving Ratio (PSR) of Bloom filter implemented based on the architectures presented functioning on two different lookup techniques can be calculated as PBFreg P k BFr n PSR (4.20) P BFreg

25 78 Using Equation (4.20), with reference to the power consumption of BF reg, PSR of BF r=k/2, BF r=k/4 and BF r=k/8 are calculated for various k values by considering following specifications given in Table Table 4.11 Design specifications m/n ratio 21 Number of signatures, n 1024 Size of the m bit vector, m Width of the signature, i 8 P H8 +P Q W where, P H8 +P Q, is average power consumption of basic functional module. As illustrated in section 5, P H8 +P Q comprise both power consumptions of both hash value calculation and match query for single hash function. As illustrated in section 4.7, basic functional module was implemented in Complementary Metal Oxide Semiconductor (CMOS) 60 nm technology using a back end tool and average power consumption was calculated which has been used in the power analysis of proposed low power architectures. When the number of hash functions per stage (r) decreases, power consumption reduces. PSR of BF r=k/2, BF r=k/4 and BF r=k/8 are calculated with reference to BF reg and plotted in Figure For different values of the number of hash functions (k) over power consumption of Bloom filter architectures BF r=k/2, BF r=k/4 and BF r=k/8 are illustrated in Figure When the number of hash functions per stage (r) decreases, PSR increases. When k increases more than 128, PSR of all three architectures converge.

26 79 Figure 4.15 PSR Vs Number of hash functions (k) Figure 4.16 Power Vs Number of hash functions (k)

27 80 Observation shows that increment in k increases the number of basic functional modules used in the design which increases the device density. Obviously device density is directly proportional to power consumption, by the observation from Figure 4.16, which cannot be compensated using parallel look up techniques proposed. This work suggests that selecting less number of hash functions to design Bloom filter architecture with the cost of m/n ratio results in better PSR. 4.8 FPGA IMPLEMENTATION OF MSLT ARCHITECTURES Results of hardware implementation in Xilinx 10.1i are implemented. The simulation for each pattern set was synthesized, placed, and routed on the Virtex5 XC5VLX85 (Xilinx, 2009) chip where the package and speed are FF676 and -3, respectively. To evaluate the proposed implementations, simulations are performed based on the following issues: Table 4.12 FPGA Implementation of MSLT Architectures Design MSLT DSLT Device Virtex5- LX85T Size of the Signature No. of Signatures Slice No. of Registers No. of LUT Size of the signature (bits): Each signature is 16 or 32-bit width data. If bits per cycle are more then throughput is better. Slice: Slice is the FPGA resource in Xilinx FPGA chip. The number of logic elements in a slice is dependent on the FPGA device.

28 81 Number of slices represents the area cost. In Virtex-5, each FPGA slice contains four LUTs and four flip-flops. Clock period: The clock period is the speed of the maximum critical path in FPGA. The period can be obtained from the synthesis report of Xilinx software. The smaller is clock period, the faster is its implementation. Table 4.12 shows the experiment results. The number of signatures in these pattern sets is bit and 32 bit designs are simulated for each pattern set. The number of registers and number of LUTs show the device utilization of proposed architectures. Proposed MSLT architectures consume 29% less devices than DSLT in this implementation. 4.9 SUMMARY In this chapter, low power Bloom filter architectures are proposed to meet the network application in the hardware platform. According to this, a better Hash function is selected for hardware implementation. Further, average power consumption of basic functional module of Bloom filter using H 3 universal hash function is derived using CMOS 60 nm technology. Mathematical analysis is carried out to calculate the Power consumption and PSR of the low power Bloom filter architectures with different values of number of hash function per stage (r). Power analysis has shown that increment in the number of hash function per stage reduces the power consumption of the proposed architecture. FPGA implementation results and comparison with similar Bloom filter based signature detection techniques used in NIDS show the hardware compatibility of the proposed architecture. The design parameters, number of hash functions (k), width of the filter (m), number of stages (r) and false Positive probability (f) can be determined for the proposed architecture by the results shown in Figure 4.15

29 82 & If k is smaller, then it decreases the power consumption with less number of hash functions, but the probability of false positive will increase. If m is larger, it will reduce the false positive rate, but searching time and power in the filtering stage will be more. Hence, the design parameters are carefully selected by understanding the trade off among the design parameters. Proposed MSLT architecture involves with parallel k stage hash functions. Pipelined multi stage architecture was also considered and discussed at the earlier stage of the research. Even though pipelined architecture reduces the computation time, it will introduce more hardware complexity which will directly affect the system s performance.

INTRODUCTION TO FPGA ARCHITECTURE

INTRODUCTION TO FPGA ARCHITECTURE 3/3/25 INTRODUCTION TO FPGA ARCHITECTURE DIGITAL LOGIC DESIGN (BASIC TECHNIQUES) a b a y 2input Black Box y b Functional Schematic a b y a b y a b y 2 Truth Table (AND) Truth Table (OR) Truth Table (XOR)

More information

Automatic compilation framework for Bloom filter based intrusion detection

Automatic compilation framework for Bloom filter based intrusion detection Automatic compilation framework for Bloom filter based intrusion detection Dinesh C Suresh, Zhi Guo*, Betul Buyukkurt and Walid A. Najjar Department of Computer Science and Engineering *Department of Electrical

More information

Bloom Filters. References:

Bloom Filters. References: Bloom Filters References: Li Fan, Pei Cao, Jussara Almeida, Andrei Broder, Summary Cache: A Scalable Wide-Area Web Cache Sharing Protocol, IEEE/ACM Transactions on Networking, Vol. 8, No. 3, June 2000.

More information

Advanced FPGA Design Methodologies with Xilinx Vivado

Advanced FPGA Design Methodologies with Xilinx Vivado Advanced FPGA Design Methodologies with Xilinx Vivado Alexander Jäger Computer Architecture Group Heidelberg University, Germany Abstract With shrinking feature sizes in the ASIC manufacturing technology,

More information

PERFORMANCE ANALYSIS OF HIGH EFFICIENCY LOW DENSITY PARITY-CHECK CODE DECODER FOR LOW POWER APPLICATIONS

PERFORMANCE ANALYSIS OF HIGH EFFICIENCY LOW DENSITY PARITY-CHECK CODE DECODER FOR LOW POWER APPLICATIONS American Journal of Applied Sciences 11 (4): 558-563, 2014 ISSN: 1546-9239 2014 Science Publication doi:10.3844/ajassp.2014.558.563 Published Online 11 (4) 2014 (http://www.thescipub.com/ajas.toc) PERFORMANCE

More information

A Configurable Multi-Ported Register File Architecture for Soft Processor Cores

A Configurable Multi-Ported Register File Architecture for Soft Processor Cores A Configurable Multi-Ported Register File Architecture for Soft Processor Cores Mazen A. R. Saghir and Rawan Naous Department of Electrical and Computer Engineering American University of Beirut P.O. Box

More information

TSEA44 - Design for FPGAs

TSEA44 - Design for FPGAs 2015-11-24 Now for something else... Adapting designs to FPGAs Why? Clock frequency Area Power Target FPGA architecture: Xilinx FPGAs with 4 input LUTs (such as Virtex-II) Determining the maximum frequency

More information

FPGA architecture and design technology

FPGA architecture and design technology CE 435 Embedded Systems Spring 2017 FPGA architecture and design technology Nikos Bellas Computer and Communications Engineering Department University of Thessaly 1 FPGA fabric A generic island-style FPGA

More information

CHAPTER 5. CHE BASED SoPC FOR EVOLVABLE HARDWARE

CHAPTER 5. CHE BASED SoPC FOR EVOLVABLE HARDWARE 90 CHAPTER 5 CHE BASED SoPC FOR EVOLVABLE HARDWARE A hardware architecture that implements the GA for EHW is presented in this chapter. This SoPC (System on Programmable Chip) architecture is also designed

More information

International Journal of Advanced Research in Computer Science and Software Engineering

International Journal of Advanced Research in Computer Science and Software Engineering ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: Implementation of Floating Point Multiplier on Reconfigurable

More information

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS /$ IEEE

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS /$ IEEE IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS 1 Exploration of Heterogeneous FPGAs for Mapping Linear Projection Designs Christos-S. Bouganis, Member, IEEE, Iosifina Pournara, and Peter

More information

IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY FPGA

IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY FPGA IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY FPGA Implementations of Tiny Mersenne Twister Guoping Wang Department of Engineering, Indiana University Purdue University Fort

More information

Background on Bloom Filter

Background on Bloom Filter CSE 535 : Lecture 5 String Matching with Bloom Filters Washington University Fall 23 http://www.arl.wustl.edu/arl/projects/fpx/cse535/ Copyright 23, Sarang Dharmapurikar [Guest Lecture] CSE 535 : Fall

More information

Error Detection and Correction by using Bloom Filters R. Prem Kumar, Smt. V. Annapurna

Error Detection and Correction by using Bloom Filters R. Prem Kumar, Smt. V. Annapurna Error Detection and Correction by using Bloom Filters R. Prem Kumar, Smt. V. Annapurna Abstract---Bloom filters (BFs) provide a fast and efficient way to check whether a given element belongs to a set.

More information

AES Core Specification. Author: Homer Hsing

AES Core Specification. Author: Homer Hsing AES Core Specification Author: Homer Hsing homer.hsing@gmail.com Rev. 0.1.1 October 30, 2012 This page has been intentionally left blank. www.opencores.org Rev 0.1.1 ii Revision History Rev. Date Author

More information

The Next Generation 65-nm FPGA. Steve Douglass, Kees Vissers, Peter Alfke Xilinx August 21, 2006

The Next Generation 65-nm FPGA. Steve Douglass, Kees Vissers, Peter Alfke Xilinx August 21, 2006 The Next Generation 65-nm FPGA Steve Douglass, Kees Vissers, Peter Alfke Xilinx August 21, 2006 Hot Chips, 2006 Structure of the talk 65nm technology going towards 32nm Virtex-5 family Improved I/O Benchmarking

More information

High Speed Special Function Unit for Graphics Processing Unit

High Speed Special Function Unit for Graphics Processing Unit High Speed Special Function Unit for Graphics Processing Unit Abd-Elrahman G. Qoutb 1, Abdullah M. El-Gunidy 1, Mohammed F. Tolba 1, and Magdy A. El-Moursy 2 1 Electrical Engineering Department, Fayoum

More information

A Robust Bloom Filter

A Robust Bloom Filter A Robust Bloom Filter Yoon-Hwa Choi Department of Computer Engineering, Hongik University, Seoul, Korea. Orcid: 0000-0003-4585-2875 Abstract A Bloom filter is a space-efficient randomized data structure

More information

Field Programmable Gate Array

Field Programmable Gate Array Field Programmable Gate Array System Arch 27 (Fire Tom Wada) What is FPGA? System Arch 27 (Fire Tom Wada) 2 FPGA Programmable (= reconfigurable) Digital System Component Basic components Combinational

More information

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 3. Arithmetic for Computers Implementation

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 3. Arithmetic for Computers Implementation COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition Chapter 3 Arithmetic for Computers Implementation Today Review representations (252/352 recap) Floating point Addition: Ripple

More information

PERG-Rx: An FPGA-based Pattern-Matching Engine with Limited Regular Expression Support for Large Pattern Database. Johnny Ho

PERG-Rx: An FPGA-based Pattern-Matching Engine with Limited Regular Expression Support for Large Pattern Database. Johnny Ho PERG-Rx: An FPGA-based Pattern-Matching Engine with Limited Regular Expression Support for Large Pattern Database Johnny Ho Supervisor: Guy Lemieux Date: September 11, 2009 University of British Columbia

More information

A Novel Design Framework for the Design of Reconfigurable Systems based on NoCs

A Novel Design Framework for the Design of Reconfigurable Systems based on NoCs Politecnico di Milano & EPFL A Novel Design Framework for the Design of Reconfigurable Systems based on NoCs Vincenzo Rana, Ivan Beretta, Donatella Sciuto Donatella Sciuto sciuto@elet.polimi.it Introduction

More information

ECE 645: Lecture 1. Basic Adders and Counters. Implementation of Adders in FPGAs

ECE 645: Lecture 1. Basic Adders and Counters. Implementation of Adders in FPGAs ECE 645: Lecture Basic Adders and Counters Implementation of Adders in FPGAs Required Reading Behrooz Parhami, Computer Arithmetic: Algorithms and Hardware Design Chapter 5, Basic Addition and Counting,

More information

Basic FPGA Architectures. Actel FPGAs. PLD Technologies: Antifuse. 3 Digital Systems Implementation Programmable Logic Devices

Basic FPGA Architectures. Actel FPGAs. PLD Technologies: Antifuse. 3 Digital Systems Implementation Programmable Logic Devices 3 Digital Systems Implementation Programmable Logic Devices Basic FPGA Architectures Why Programmable Logic Devices (PLDs)? Low cost, low risk way of implementing digital circuits as application specific

More information

ISSN Vol.05,Issue.09, September-2017, Pages:

ISSN Vol.05,Issue.09, September-2017, Pages: WWW.IJITECH.ORG ISSN 2321-8665 Vol.05,Issue.09, September-2017, Pages:1693-1697 AJJAM PUSHPA 1, C. H. RAMA MOHAN 2 1 PG Scholar, Dept of ECE(DECS), Shirdi Sai Institute of Science and Technology, Anantapuramu,

More information

Project Proposal. ECE 526 Spring Modified Data Structure of Aho-Corasick. Benfano Soewito, Ed Flanigan and John Pangrazio

Project Proposal. ECE 526 Spring Modified Data Structure of Aho-Corasick. Benfano Soewito, Ed Flanigan and John Pangrazio Project Proposal ECE 526 Spring 2006 Modified Data Structure of Aho-Corasick Benfano Soewito, Ed Flanigan and John Pangrazio 1. Introduction The internet becomes the most important tool in this decade

More information

CSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8

CSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8 CSCB58 - Lab 3 Latches, Flip-flops, and Registers Learning Objectives The purpose of this exercise is to investigate the fundamental synchronous logic elements: latches, flip-flops, and registers. Prelab

More information

An 80Gbps FPGA Implementation of a Universal Hash Function based Message Authentication Code

An 80Gbps FPGA Implementation of a Universal Hash Function based Message Authentication Code An 8Gbps FPGA Implementation of a Universal Hash Function based Message Authentication Code Abstract We developed an architecture optimization technique called divide-and-concatenate and applied it to

More information

International Journal of Advanced Research in Computer Science and Software Engineering

International Journal of Advanced Research in Computer Science and Software Engineering ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: Configuring Floating Point Multiplier on Spartan 2E Hardware

More information

Analytical Modeling of Parallel Systems. To accompany the text ``Introduction to Parallel Computing'', Addison Wesley, 2003.

Analytical Modeling of Parallel Systems. To accompany the text ``Introduction to Parallel Computing'', Addison Wesley, 2003. Analytical Modeling of Parallel Systems To accompany the text ``Introduction to Parallel Computing'', Addison Wesley, 2003. Topic Overview Sources of Overhead in Parallel Programs Performance Metrics for

More information

Don t expect to be able to write and debug your code during the lab session.

Don t expect to be able to write and debug your code during the lab session. EECS150 Spring 2002 Lab 4 Verilog Simulation Mapping UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 4 Verilog Simulation Mapping

More information

High-Performance FIR Filter Architecture for Fixed and Reconfigurable Applications

High-Performance FIR Filter Architecture for Fixed and Reconfigurable Applications High-Performance FIR Filter Architecture for Fixed and Reconfigurable Applications Pallavi R. Yewale ME Student, Dept. of Electronics and Tele-communication, DYPCOE, Savitribai phule University, Pune,

More information

Bloom filters and their applications

Bloom filters and their applications Bloom filters and their applications Fedor Nikitin June 11, 2006 1 Introduction The bloom filters, as a new approach to hashing, were firstly presented by Burton Bloom [Blo70]. He considered the task of

More information

Chapter 4. Operations on Data

Chapter 4. Operations on Data Chapter 4 Operations on Data 1 OBJECTIVES After reading this chapter, the reader should be able to: List the three categories of operations performed on data. Perform unary and binary logic operations

More information

FPGA: What? Why? Marco D. Santambrogio

FPGA: What? Why? Marco D. Santambrogio FPGA: What? Why? Marco D. Santambrogio marco.santambrogio@polimi.it 2 Reconfigurable Hardware Reconfigurable computing is intended to fill the gap between hardware and software, achieving potentially much

More information

Notes on Bloom filters

Notes on Bloom filters Computer Science B63 Winter 2017 Scarborough Campus University of Toronto Notes on Bloom filters Vassos Hadzilacos A Bloom filter is an approximate or probabilistic dictionary. Let S be a dynamic set of

More information

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011 FPGA for Complex System Implementation National Chiao Tung University Chun-Jen Tsai 04/14/2011 About FPGA FPGA was invented by Ross Freeman in 1989 SRAM-based FPGA properties Standard parts Allowing multi-level

More information

A Privacy Preserving Model for Ownership Indexing in Distributed Storage Systems

A Privacy Preserving Model for Ownership Indexing in Distributed Storage Systems A Privacy Preserving Model for Ownership Indexing in Distributed Storage Systems Tiejian Luo tjluo@ucas.ac.cn Zhu Wang wangzhubj@gmail.com Xiang Wang wangxiang11@mails.ucas.ac.cn ABSTRACT The indexing

More information

FFT/IFFTProcessor IP Core Datasheet

FFT/IFFTProcessor IP Core Datasheet System-on-Chip engineering FFT/IFFTProcessor IP Core Datasheet - Released - Core:120801 Doc: 130107 This page has been intentionally left blank ii Copyright reminder Copyright c 2012 by System-on-Chip

More information

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC Zoltan Baruch Computer Science Department, Technical University of Cluj-Napoca, 26-28, Bariţiu St., 3400 Cluj-Napoca,

More information

NETWORK INTRUSION DETECTION SYSTEM: AN IMPROVED ARCHITECTURE TO REDUCE FALSE POSITIVE RATE

NETWORK INTRUSION DETECTION SYSTEM: AN IMPROVED ARCHITECTURE TO REDUCE FALSE POSITIVE RATE NETWORK INTRUSION DETECTION SYSTEM: AN IMPROVED ARCHITECTURE TO REDUCE FALSE POSITIVE RATE 1 P.BRINDHA, 2 Dr.A.SENTHILKUMAR 1 Assistant Professor, Department of Electronics and Communication Engineering,

More information

An Enhanced Bloom Filter for Longest Prefix Matching

An Enhanced Bloom Filter for Longest Prefix Matching An Enhanced Bloom Filter for Longest Prefix Matching Gahyun Park SUNY-Geneseo Email: park@geneseo.edu Minseok Kwon Rochester Institute of Technology Email: jmk@cs.rit.edu Abstract A Bloom filter is a succinct

More information

Performance Analysis of CORDIC Architectures Targeted by FPGA Devices

Performance Analysis of CORDIC Architectures Targeted by FPGA Devices International OPEN ACCESS Journal Of Modern Engineering Research (IJMER) Performance Analysis of CORDIC Architectures Targeted by FPGA Devices Guddeti Nagarjuna Reddy 1, R.Jayalakshmi 2, Dr.K.Umapathy

More information

FPGA Implementation of Multiplierless 2D DWT Architecture for Image Compression

FPGA Implementation of Multiplierless 2D DWT Architecture for Image Compression FPGA Implementation of Multiplierless 2D DWT Architecture for Image Compression Divakara.S.S, Research Scholar, J.S.S. Research Foundation, Mysore Cyril Prasanna Raj P Dean(R&D), MSEC, Bangalore Thejas

More information

Architectures and FPGA Implementations of the. 64-bit MISTY1 Block Cipher

Architectures and FPGA Implementations of the. 64-bit MISTY1 Block Cipher Architectures and FPGA Implementations of the 64-bit MISTY1 Block Cipher P. Kitsos *, M. D. Galanis, O. Koufopavlou VLSI Design Laboratory Electrical and Computer Engineering Department University of Patras,

More information

Introduction to Field Programmable Gate Arrays

Introduction to Field Programmable Gate Arrays Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May 9 June 2007 Javier Serrano, CERN AB-CO-HT Outline Historical introduction.

More information

University of Bristol - Explore Bristol Research. Peer reviewed version. Link to published version (if available): /ISCAS.2006.

University of Bristol - Explore Bristol Research. Peer reviewed version. Link to published version (if available): /ISCAS.2006. Kaya, I., & Koca, T. (2006). Increasing the power efficiency of Bloom filters for networ string matching. In IEEE International Symposium on Circuits and Systems, Kos Island, Greece (pp. 1828-1831). Institute

More information

(Refer Slide Time: 2:20)

(Refer Slide Time: 2:20) Data Communications Prof. A. Pal Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture-15 Error Detection and Correction Hello viewers welcome to today s lecture

More information

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function. FPGA Logic block of an FPGA can be configured in such a way that it can provide functionality as simple as that of transistor or as complex as that of a microprocessor. It can used to implement different

More information

Low-Area Implementations of SHA-3 Candidates

Low-Area Implementations of SHA-3 Candidates Jens-Peter Cryptographic Engineering Research Group (CERG) http://cryptography.gmu.edu Department of ECE, Volgenau School of IT&E, George Mason University, Fairfax, VA, USA SHA-3 Project Review Meeting

More information

System Verification of Hardware Optimization Based on Edge Detection

System Verification of Hardware Optimization Based on Edge Detection Circuits and Systems, 2013, 4, 293-298 http://dx.doi.org/10.4236/cs.2013.43040 Published Online July 2013 (http://www.scirp.org/journal/cs) System Verification of Hardware Optimization Based on Edge Detection

More information

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 01 Introduction Welcome to the course on Hardware

More information

FPGA Matrix Multiplier

FPGA Matrix Multiplier FPGA Matrix Multiplier In Hwan Baek Henri Samueli School of Engineering and Applied Science University of California Los Angeles Los Angeles, California Email: chris.inhwan.baek@gmail.com David Boeck Henri

More information

Copyright 2011 Society of Photo-Optical Instrumentation Engineers. This paper was published in Proceedings of SPIE (Proc. SPIE Vol.

Copyright 2011 Society of Photo-Optical Instrumentation Engineers. This paper was published in Proceedings of SPIE (Proc. SPIE Vol. Copyright 2011 Society of Photo-Optical Instrumentation Engineers. This paper was published in Proceedings of SPIE (Proc. SPIE Vol. 8008, 80080E, DOI: http://dx.doi.org/10.1117/12.905281 ) and is made

More information

Implementation of CORDIC Algorithms in FPGA

Implementation of CORDIC Algorithms in FPGA Summer Project Report Implementation of CORDIC Algorithms in FPGA Sidharth Thomas Suyash Mahar under the guidance of Dr. Bishnu Prasad Das May 2017 Department of Electronics and Communication Engineering

More information

4 Operations On Data 4.1. Foundations of Computer Science Cengage Learning

4 Operations On Data 4.1. Foundations of Computer Science Cengage Learning 4 Operations On Data 4.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: List the three categories of operations performed on data.

More information

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

More information

Payload Inspection Using Parallel Bloom Filter in Dual Core Processor

Payload Inspection Using Parallel Bloom Filter in Dual Core Processor Payload Inspection Using Parallel Bloom Filter in Dual Core Processor Arulanand Natarajan (Corresponding author) Anna University Coimbatore, TN, India E-mail: arulnat@yahoo.com S. Subramanian Sri Krishna

More information

MCM Based FIR Filter Architecture for High Performance

MCM Based FIR Filter Architecture for High Performance ISSN No: 2454-9614 MCM Based FIR Filter Architecture for High Performance R.Gopalana, A.Parameswari * Department Of Electronics and Communication Engineering, Velalar College of Engineering and Technology,

More information

COE 561 Digital System Design & Synthesis Introduction

COE 561 Digital System Design & Synthesis Introduction 1 COE 561 Digital System Design & Synthesis Introduction Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Outline Course Topics Microelectronics Design

More information

A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis

A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis Bruno da Silva, Jan Lemeire, An Braeken, and Abdellah Touhafi Vrije Universiteit Brussel (VUB), INDI and ETRO department, Brussels,

More information

Fast Evaluation of the Square Root and Other Nonlinear Functions in FPGA

Fast Evaluation of the Square Root and Other Nonlinear Functions in FPGA Edith Cowan University Research Online ECU Publications Pre. 20 2008 Fast Evaluation of the Square Root and Other Nonlinear Functions in FPGA Stefan Lachowicz Edith Cowan University Hans-Joerg Pfleiderer

More information

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router Overview Implementing Gigabit Routers with NetFPGA Prof. Sasu Tarkoma The NetFPGA is a low-cost platform for teaching networking hardware and router design, and a tool for networking researchers. The NetFPGA

More information

Implementing Logic in FPGA Memory Arrays: Heterogeneous Memory Architectures

Implementing Logic in FPGA Memory Arrays: Heterogeneous Memory Architectures Implementing Logic in FPGA Memory Arrays: Heterogeneous Memory Architectures Steven J.E. Wilton Department of Electrical and Computer Engineering University of British Columbia Vancouver, BC, Canada, V6T

More information

International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering

International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering An Efficient Implementation of Double Precision Floating Point Multiplier Using Booth Algorithm Pallavi Ramteke 1, Dr. N. N. Mhala 2, Prof. P. R. Lakhe M.Tech [IV Sem], Dept. of Comm. Engg., S.D.C.E, [Selukate],

More information

DESIGNING OF STREAM CIPHER ARCHITECTURE USING THE CELLULAR AUTOMATA

DESIGNING OF STREAM CIPHER ARCHITECTURE USING THE CELLULAR AUTOMATA DESIGNING OF STREAM CIPHER ARCHITECTURE USING THE CELLULAR AUTOMATA 1 Brundha K A MTech Email: 1 brundha1905@gmail.com Abstract Pseudo-random number generators (PRNGs) are a key component of stream ciphers

More information

Parallel FIR Filters. Chapter 5

Parallel FIR Filters. Chapter 5 Chapter 5 Parallel FIR Filters This chapter describes the implementation of high-performance, parallel, full-precision FIR filters using the DSP48 slice in a Virtex-4 device. ecause the Virtex-4 architecture

More information

A SCALABLE COMPUTING AND MEMORY ARCHITECTURE FOR VARIABLE BLOCK SIZE MOTION ESTIMATION ON FIELD-PROGRAMMABLE GATE ARRAYS. Theepan Moorthy and Andy Ye

A SCALABLE COMPUTING AND MEMORY ARCHITECTURE FOR VARIABLE BLOCK SIZE MOTION ESTIMATION ON FIELD-PROGRAMMABLE GATE ARRAYS. Theepan Moorthy and Andy Ye A SCALABLE COMPUTING AND MEMORY ARCHITECTURE FOR VARIABLE BLOCK SIZE MOTION ESTIMATION ON FIELD-PROGRAMMABLE GATE ARRAYS Theepan Moorthy and Andy Ye Department of Electrical and Computer Engineering Ryerson

More information

FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed

FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed Vijaya Kumar. B.1 #1, T. Thammi Reddy.2 #2 #1. Dept of Electronics and Communication, G.P.R.Engineering College,

More information

Outcomes. Spiral 1 / Unit 6. Flip Flops FLIP FLOPS AND REGISTERS. Flip flops and Registers. Outputs only change once per clock period

Outcomes. Spiral 1 / Unit 6. Flip Flops FLIP FLOPS AND REGISTERS. Flip flops and Registers. Outputs only change once per clock period 1-6.1 1-6.2 Spiral 1 / Unit 6 Flip flops and Registers Mark Redekopp Outcomes I know the difference between combinational and sequential logic and can name examples of each. I understand latency, throughput,

More information

CHAPTER 1 INTRODUCTION

CHAPTER 1 INTRODUCTION 1 CHAPTER 1 INTRODUCTION 1.1 Advance Encryption Standard (AES) Rijndael algorithm is symmetric block cipher that can process data blocks of 128 bits, using cipher keys with lengths of 128, 192, and 256

More information

FPGA-Specific Arithmetic Optimizations of Short-Latency Adders

FPGA-Specific Arithmetic Optimizations of Short-Latency Adders Author manuscript, published in "in Field Programmable Logic and Applications - 2 International Conference on Field Programmable Logic and Applications (FPL), Chania : Greece (2)" DOI :.9/FPL.2.49 FPGA-Specific

More information

HIGH-PERFORMANCE RECONFIGURABLE FIR FILTER USING PIPELINE TECHNIQUE

HIGH-PERFORMANCE RECONFIGURABLE FIR FILTER USING PIPELINE TECHNIQUE HIGH-PERFORMANCE RECONFIGURABLE FIR FILTER USING PIPELINE TECHNIQUE Anni Benitta.M #1 and Felcy Jeba Malar.M *2 1# Centre for excellence in VLSI Design, ECE, KCG College of Technology, Chennai, Tamilnadu

More information

Implementation of Galois Field Arithmetic Unit on FPGA

Implementation of Galois Field Arithmetic Unit on FPGA Implementation of Galois Field Arithmetic Unit on FPGA 1 LakhendraKumar, 2 Dr. K. L. Sudha 1 B.E project scholar, VIII SEM, Dept. of E&C, DSCE, Bangalore, India 2 Professor, Dept. of E&C, DSCE, Bangalore,

More information

DESIGN OF PARAMETER EXTRACTOR IN LOW POWER PRECOMPUTATION BASED CONTENT ADDRESSABLE MEMORY

DESIGN OF PARAMETER EXTRACTOR IN LOW POWER PRECOMPUTATION BASED CONTENT ADDRESSABLE MEMORY DESIGN OF PARAMETER EXTRACTOR IN LOW POWER PRECOMPUTATION BASED CONTENT ADDRESSABLE MEMORY Saroja pasumarti, Asst.professor, Department Of Electronics and Communication Engineering, Chaitanya Engineering

More information

FPGA IMPLEMENTATION FOR REAL TIME SOBEL EDGE DETECTOR BLOCK USING 3-LINE BUFFERS

FPGA IMPLEMENTATION FOR REAL TIME SOBEL EDGE DETECTOR BLOCK USING 3-LINE BUFFERS FPGA IMPLEMENTATION FOR REAL TIME SOBEL EDGE DETECTOR BLOCK USING 3-LINE BUFFERS 1 RONNIE O. SERFA JUAN, 2 CHAN SU PARK, 3 HI SEOK KIM, 4 HYEONG WOO CHA 1,2,3,4 CheongJu University E-maul: 1 engr_serfs@yahoo.com,

More information

An easy to read reference is:

An easy to read reference is: 1. Synopsis: Timing Analysis and Timing Constraints The objective of this lab is to make you familiar with two critical reports produced by the Xilinx ISE during your design synthesis and implementation.

More information

CHAPTER 6 MODIFIED FUZZY TECHNIQUES BASED IMAGE SEGMENTATION

CHAPTER 6 MODIFIED FUZZY TECHNIQUES BASED IMAGE SEGMENTATION CHAPTER 6 MODIFIED FUZZY TECHNIQUES BASED IMAGE SEGMENTATION 6.1 INTRODUCTION Fuzzy logic based computational techniques are becoming increasingly important in the medical image analysis arena. The significant

More information

WITH integrated circuits, especially system-on-chip

WITH integrated circuits, especially system-on-chip IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 14, NO. 11, NOVEMBER 2006 1227 Improving Linear Test Data Compression Kedarnath J. Balakrishnan, Member, IEEE, and Nur A. Touba, Senior

More information

Stratix II vs. Virtex-4 Performance Comparison

Stratix II vs. Virtex-4 Performance Comparison White Paper Stratix II vs. Virtex-4 Performance Comparison Altera Stratix II devices use a new and innovative logic structure called the adaptive logic module () to make Stratix II devices the industry

More information

A SIMULINK-TO-FPGA MULTI-RATE HIERARCHICAL FIR FILTER DESIGN

A SIMULINK-TO-FPGA MULTI-RATE HIERARCHICAL FIR FILTER DESIGN A SIMULINK-TO-FPGA MULTI-RATE HIERARCHICAL FIR FILTER DESIGN Xiaoying Li 1 Fuming Sun 2 Enhua Wu 1, 3 1 University of Macau, Macao, China 2 University of Science and Technology Beijing, Beijing, China

More information

DRAF: A Low-Power DRAM-based Reconfigurable Acceleration Fabric

DRAF: A Low-Power DRAM-based Reconfigurable Acceleration Fabric DRAF: A Low-Power DRAM-based Reconfigurable Acceleration Fabric Mingyu Gao, Christina Delimitrou, Dimin Niu, Krishna Malladi, Hongzhong Zheng, Bob Brennan, Christos Kozyrakis ISCA June 22, 2016 FPGA-Based

More information

A Dedicated Hardware Solution for the HEVC Interpolation Unit

A Dedicated Hardware Solution for the HEVC Interpolation Unit XXVII SIM - South Symposium on Microelectronics 1 A Dedicated Hardware Solution for the HEVC Interpolation Unit 1 Vladimir Afonso, 1 Marcel Moscarelli Corrêa, 1 Luciano Volcan Agostini, 2 Denis Teixeira

More information

Spiral 1 / Unit 6. Flip-flops and Registers

Spiral 1 / Unit 6. Flip-flops and Registers 1-5.1 Spiral 1 / Unit 6 Flip-flops and Registers 1-5.2 Outcomes I know the difference between combinational and sequential logic and can name examples of each. I understand latency, throughput, and at

More information

1 Computer arithmetic with unsigned integers

1 Computer arithmetic with unsigned integers 1 Computer arithmetic with unsigned integers All numbers are w-bit unsigned integers unless otherwise noted. A w-bit unsigned integer x can be written out in binary as x x x w 2...x 2 x 1 x 0, where x

More information

Outcomes. Spiral 1 / Unit 6. Flip Flops FLIP FLOPS AND REGISTERS. Flip flops and Registers. Outputs only change once per clock period

Outcomes. Spiral 1 / Unit 6. Flip Flops FLIP FLOPS AND REGISTERS. Flip flops and Registers. Outputs only change once per clock period 1-5.1 1-5.2 Spiral 1 / Unit 6 Flip flops and Registers Mark Redekopp Outcomes I know the difference between combinational and sequential logic and can name examples of each. I understand latency, throughput,

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 Xilinx FPGAs Chapter 7 Spartan 3E Architecture Source: Spartan-3E FPGA Family Datasheet CLB Configurable Logic Blocks Each CLB contains four slices Each slice

More information

Introduction to Field Programmable Gate Arrays

Introduction to Field Programmable Gate Arrays Introduction to Field Programmable Gate Arrays Lecture 2/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May 9 June 2007 Javier Serrano, CERN AB-CO-HT Outline Digital Signal

More information

Low Complexity Quasi-Cyclic LDPC Decoder Architecture for IEEE n

Low Complexity Quasi-Cyclic LDPC Decoder Architecture for IEEE n Low Complexity Quasi-Cyclic LDPC Decoder Architecture for IEEE 802.11n Sherif Abou Zied 1, Ahmed Tarek Sayed 1, and Rafik Guindi 2 1 Varkon Semiconductors, Cairo, Egypt 2 Nile University, Giza, Egypt Abstract

More information

DIGITAL ARITHMETIC: OPERATIONS AND CIRCUITS

DIGITAL ARITHMETIC: OPERATIONS AND CIRCUITS C H A P T E R 6 DIGITAL ARITHMETIC: OPERATIONS AND CIRCUITS OUTLINE 6- Binary Addition 6-2 Representing Signed Numbers 6-3 Addition in the 2 s- Complement System 6-4 Subtraction in the 2 s- Complement

More information

Dynamic analysis in the Reduceron. Matthew Naylor and Colin Runciman University of York

Dynamic analysis in the Reduceron. Matthew Naylor and Colin Runciman University of York Dynamic analysis in the Reduceron Matthew Naylor and Colin Runciman University of York A question I wonder how popular Haskell needs to become for Intel to optimize their processors for my runtime, rather

More information

Basic FPGA Architecture Xilinx, Inc. All Rights Reserved

Basic FPGA Architecture Xilinx, Inc. All Rights Reserved Basic FPGA Architecture 2005 Xilinx, Inc. All Rights Reserved Objectives After completing this module, you will be able to: Identify the basic architectural resources of the Virtex -II FPGA List the differences

More information

An Efficient VLSI Execution of Data Transmission Error Detection and Correction Based Bloom Filter

An Efficient VLSI Execution of Data Transmission Error Detection and Correction Based Bloom Filter GRD Journals Global Research and Development Journal for Engineering International Conference on Innovations in Engineering and Technology (ICIET) - 2016 July 2016 e-issn: 2455-5703 An Efficient VLSI Execution

More information

Virtex-II Architecture

Virtex-II Architecture Virtex-II Architecture Block SelectRAM resource I/O Blocks (IOBs) edicated multipliers Programmable interconnect Configurable Logic Blocks (CLBs) Virtex -II architecture s core voltage operates at 1.5V

More information

Packet Inspection on Programmable Hardware

Packet Inspection on Programmable Hardware Abstract Packet Inspection on Programmable Hardware Benfano Soewito Information Technology Department, Bakrie University, Jakarta, Indonesia E-mail: benfano.soewito@bakrie.ac.id In the network security

More information

Hashing. Hashing Procedures

Hashing. Hashing Procedures Hashing Hashing Procedures Let us denote the set of all possible key values (i.e., the universe of keys) used in a dictionary application by U. Suppose an application requires a dictionary in which elements

More information

Developing a Data Driven System for Computational Neuroscience

Developing a Data Driven System for Computational Neuroscience Developing a Data Driven System for Computational Neuroscience Ross Snider and Yongming Zhu Montana State University, Bozeman MT 59717, USA Abstract. A data driven system implies the need to integrate

More information

CS246: Mining Massive Datasets Jure Leskovec, Stanford University

CS246: Mining Massive Datasets Jure Leskovec, Stanford University CS246: Mining Massive Datasets Jure Leskovec, Stanford University http://cs246.stanford.edu 3/6/2012 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 2 In many data mining

More information

Reconfigurable PLL for Digital System

Reconfigurable PLL for Digital System International Journal of Engineering Research and Technology. ISSN 0974-3154 Volume 6, Number 3 (2013), pp. 285-291 International Research Publication House http://www.irphouse.com Reconfigurable PLL for

More information

University, Patiala, Punjab, India 1 2

University, Patiala, Punjab, India 1 2 1102 Design and Implementation of Efficient Adder based Floating Point Multiplier LOKESH BHARDWAJ 1, SAKSHI BAJAJ 2 1 Student, M.tech, VLSI, 2 Assistant Professor,Electronics and Communication Engineering

More information