Reconfigurable co-processor for Kanerva s sparse distributed memory

Size: px
Start display at page:

Download "Reconfigurable co-processor for Kanerva s sparse distributed memory"

Transcription

1 Microprocessors and Microsystems 28 (2004) Reconfigurable co-processor for Kanerva s sparse distributed memory Marcus Tadeu Pinheiro Silva a, Antônio Pádua Braga b, *, Wilian Soares Lacerda c a Federal Center of Technological Education, Belo Horizonte, MG, Brazil b Department of Electronics Engineering, Federal University of Minas Gerais, Caixa Postal 209, CEP Belo Horizonte, MG, Brazil c Department of Computing, Federal University of Lavras, Lavras, MG, Brazil Received 5 August 2003; revised 28 January 2004; accepted 29 January 2004 Abstract The implementation on hardware of the first layer of Kanerva s sparse distributed memory (SDM) is presented in this work. The hardware consist on a co-processor board for connection on ISA standard bus of an IBM PCcompatible computer. The board, named reconfigurable co-processor for SDM(RC-SDM), comprises on Xilinx FPGAs, local random access memory and bus interface circuits. Based on in-system reconfiguration capacity of FPGAs, RC-SDM easily allows change of the characteristics of SDM topology implemented. First results show a speed-up of four times of RC-SDM in relation to a software implementation of the algorithm. q 2004 Elsevier B.V. All rights reserved. Keywords: Associative memory; Neural networks; FPGAs 1. Introduction Physical implementation of associative memories is in the agenda for more than four decades and has been studied from different perspectives. From the computer architecture point of view, the term content addressable memories (CAM) [1] has been coined to refer to those memory implementations that can retrieve information with partial clues of the content. The physical implementation of CAM was usually accomplished with conventional random access memories (RAM) and additional hardware. From the connectionist point of view [2], associative memories were implemented with neuron-like elements, or processing elements(pe), connected by a network structure. Information was spread throughout the network and stored in the connections between processors. The sparse distributed memory (SDM) [3] is an associative memory model that can be seen from both perspectives. From the computer architecture point of view, it can be seen as a generalization of a RAM and from the connectionist perspective as an artificial neural network (ANN). Associative memory properties are achieved by * Corresponding author. Tel.: þ ; fax: þ address: apbraga@cpdee.ufmg.br (A.P. Braga). spreading sparse decoders into the high dimensional input (address) space. The associative memory properties appear as the dimension of the input space increases, which is in fact a difficulty for its physical implementation. Computational intensive calculations of sparse address decoding is one of the main bottlenecks of software and hardware implementations of SDMs, since it requires Hamming distance 1 calculations between the high dimensional input address and all sparse decoders. This paper describes a hardware implementation of SDMs that is aimed at implementing its most computational intensive calculations in a co-processor board. The circuit, implemented on an IBM PC platform, with reconfigurable hardware, has 32 PEs that calculate the Hamming distances between the input address and 32 sparse decoders in parallel. The co-processor board, named here as recofigurable co-processor for SDMs, or simply RC-SDM, is in the category of reconfigurable machines with extended instruction set [6], since a reconfigurable platform is established by the connection of a FPGA-based co-processor to a host machine. Adaptive computation is carried on by an application program running in the host. This program configures the FPGAs and then transfers data to be 1 The Hamming distance is defined as the number of bits in which two binary words differ /$ - see front matter q 2004 Elsevier B.V. All rights reserved. doi: /j.micpro

2 128 M.T.P. Silva et al. / Microprocessors and Microsystems 28 (2004) processed in the co-processor board. Data processing in the co-processor board is accomplished in parallel with program execution by the host processor. The improved performance of the reconfigurable coprocessor system is significant when compared to a program running in the host with optimized assembly code. The flexibility of the board allows for adaptive reconfiguration of current implementation and further improvements may be achieved by using an extension of the proposed architecture. 2. Description of SDM The essence of SDMs is to use sparsely distributed decoders in a high dimensional Boolean space so that any sparse decoder, or hard storage location, is accessed from anywhere in the space that is at a Hamming distance smaller than r bits from its base address. Therefore, each decoder responds to all the vectors inside a hyper-sphere, or circle in SDM s terminology, with radius r and centre at the location s base address. Depending on the selected value for r, input vectors may access more than one storage location at the same time, allowing data to be stored and retrieved concurrently to and from several memory storage locations. Using Kanerva s analogy between a hypersphere in the n-dimensional Boolean space and a circle in the plane [5], an example of the effect of the chosen radius r in the concurrent access by an input vector j to two sparse decoders z m and z n is shown in Fig. 1. The chosen radius r a is large enough to allow access by j to both decoders z m and z n : If r a were too small, j could have been located outside the two hyper-spheres and, consequently, could not have accessed any of them. Therefore, the condition for j accessing both the arbitrary sparse decoders z m and z n is that the distance from j to both of them is less than the chosen radius r: In other words, j must be inside the intersection of the hyper-spheres with centres in z m and z n [5]. The size of the radius r in SDMs must be such that the union of all the sets of elements inside the hyper-spheres S i ðz i ; r i Þ includes all the 2 n elements of the space {0; 1} n ; so that any input vector access at least one sparse decoder. Fig. 1. j is inside the intersection of the two circles and, consequently, accesses both decoders. The distributed storage and retrieval of data in SDMs is responsible for its associative memory properties. Therefore, the intersection between two hyper-spheres S i ðz i ; r i Þ and S j ðz j ; r j Þ separated by the Hamming distance h is a basic issue in the analysis of SDMs, since it indicates the number of vectors in the space that access simultaneously both storage locations z i and z j : Of course, in the limit cases when r ¼ 0 and r ¼ n; the number of patterns that access a given hard location are, respectively, 1 and 2 n : For r in the range between 0 and n; it is possible to estimate the percentage of the Boolean space that is in the intersection of two hyperspheres [7] and predict associative memory performance. The terms hard storage location and sparse decoder used in SDM terminology resemble those used to describe conventional computers RAMs. In fact, SDMs can be seen as a general case of a RAM, since, in the limit case when r is set to zero and there are 2n sparse decoders, a SDM actually becomes a conventional RAM. The main differences between a RAM and a SDM are: the address decoder of a RAM is selected only if its base address is presented at the inputs ðr ¼ 0Þ; whereas a sparse decoder of a SDM is selected from anywhere within r bits Hamming distance from the base address ðr. 0Þ; a conventional RAM has 2 n decoder outputs and storage locations, where n is the size of the input address vector, whereas a SDM has only a portion M of the maximum 2 n sparse decoders and hard storage locations; a hard storage location of a SDM, instead of storing only one data vector, like the storage locations of a RAM, holds a statistical measure of all the data vectors that accessed that location during the storage process. SDM is, therefore, an associative memory designed to store information coded in long strings of bits, corresponding to binary vectors with hundreds or thousands of coordinates. The basic principles behind Kanerva s SDM are based on the properties of high dimensional Boolean space [3]. SDMs can be analyzed from two different perspectives: as a generalization of a conventional computer RAM with associative memory properties and also as a twolayers feed-forward neural network [4]. There is not a general expression for determining r as a function of the Boolean space dimension n: As in Kanerva s original work [3], n should be large and r should be approximately n=2: In most examples in his original work n ¼ 1000 and r is a bit less than n=2: The value used in most examples was r ¼ 451: The value of r should not be larger than n=2; since it would include most of the input space (more than 50%) and would cause too much overlap among sparse decoders. If r is too small, only a small percentage of the input space is covered by the hyper-spheres. This is the reason why r is normally chosen a bit smaller than n=2:

3 M.T.P. Silva et al. / Microprocessors and Microsystems 28 (2004) Fig. 2. Schematic view of the SDM. Fig. 2 presents the schematic view of a SDM, from which both neural network and RAM views of a SDM can be observed. Anyone familiar with digital systems would easily associate input vector I with a RAM input address, and input data vector W with memory input data. The output data, for reading information from memory, would be associated with the output vector O. The address decoder and memory array of a conventional RAM would be directly associated with sparse decoders S and cells of memory H (hard storage location). Similarly, the neural network view would characterize the structure of Fig. 2 as a two layers neural network, with information flow from input vector I to output vector O, having the threshold elements as the outputs of each layer Storage of information The first array of a SDM, matrix S, corresponds to a decoder-like structure. Each output of the decoder, after threshold, is capable of activating only one location of memory (the corresponding row of array H), like a conventional computer RAM decoder. Nevertheless, an input address may activate more than one decoder output simultaneously, what causes data to be stored to or read from several memory locations at the same time. The dimension n of I must be high, so that the properties of higher dimensional Boolean space become valid. Working with very high dimensional spaces is one of the fundamental principles behind SDMs, but represents also a difficulty for its implementation. For n ¼ 1000; for example, the number of possible input addresses is , what makes it unconceivable to think of a memory location for each one of the input addresses. Instead of that, M decoders and memory locations are used in SDMs, where M is a very small fraction of (M! ). The M sparse decoders with radius r spread on the input space are expected to include all the possible input addresses. A value for r is selected, based on the properties of the higher dimensional Boolean space, so that each one of the possible input addresses access at least one memory location. Each row of matrix H corresponds to a word of the associative memory, similarly to a conventional RAM, but, instead of a register for each storage location, SDM has a binary counter for each position. Each counter is incremented or decremented depending on whether a 1 or a 0 is stored; the storage of 1 causes increment and of 0 causes decrement. Input data vector W accesses all the hard locations of matrix H in parallel, allowing data to be stored in more than one location. Since several memory words can be selected simultaneously by the same input address, several counters on different words are activated by a single input address. This process of storage causes the information to be distributed to several memory locations. A single counter is normally activated several times when many words are stored.

4 130 M.T.P. Silva et al. / Microprocessors and Microsystems 28 (2004) Retrieval of information Similar to the storage process, information retrieval starts by presenting an input vector I that is expected to select more than one hard location of matrix H. An adder circuit sums up all the outputs of activated counters accessed during reading in order to generate the output vector O. The result of the sum can be zero, positive or negative. A negative value occurs when there were more 0s (counter decremented) then 1s (counter incremented) written during storage and a positive value occurs when there were more 1s then 0s. A zero output indicates that either the number of 0s and 1s stored were the same or that the selected locations were not accessed before. A threshold function is applied to the output of each adder, so that the output value is 1 if the sum is positive, or zero if the sum is negative. Since storage occurs in a distributed form, the read output value of the SDM is a statistical measure of the stored data obtained by a majority rule in order to effectively generate the output vector. When information is written in SDMs, storage occurs in distributed form in the j locations activated by the corresponding address vector j: Since the information is distributed, these j locations can also be accessed when other input vectors are stored. When more and more words are added to the memory, more and more coincidences occur among stored data until the maximum storage capacity of the SDM is reached, which is a fraction of M [3]. Vector d in Fig. 2 contains the results of the computed distances between the input vector I and all the M sparse decoder s base addresses. Between vectors d and y, threshold elements activate their outputs to 1 if the corresponding distances in vector d are within the range 0 to r: Therefore, the active elements of vector y are only those that correspond to the hard locations accessed by the input vector I. 3. Algorithmic representation of SDM s processing SDM s processing for storage and retrieval of information are presented in the next two sections in algorithmic form. This helps selecting the approach for hardware implementation of the co-processor board Algorithm for the first layer Processing in the first layer is the same for both storage and retrieval of information. The procedure presented in Algorithm 1 involves first the calculation of the Hamming distances h between input vector I and all the M sparse decoders of matrix S. Bitwise exclusive-or operation between input vector I and every row of matrix S is carried on by the function ExclusiveOrðI; SðrowÞÞ: The resulting vector DifVector contains 1 at every position where the two vectors I and SðrowÞ differ. Counting the number of 1s in DifVector results on the Hamming distance h: This counting operation is carried on with function CountOnesðDifVectorÞ: For every distance calculated, for each row, the corresponding output of vector y is set to 1 if h # r where r is the radius of the sparse decoders. I is a 1 by n vector, S is a M by n matrix and y is a M by 1 vector, where n and M are user defined parameters. Algorithm 1. Algorithm of the first layer for row ¼ 0toðM 2 1Þ do DifVector ¼ ExclusiveOrðI; SðrowÞÞ; h ¼ CountOnesðDifVectorÞ; if h # r then yðrowþ ¼1; else yðrowþ ¼0 end if 3.2. Algorithm for the second layer SDM s processing is different for reading and writing in the second layer, so two different procedures are presented in Algorithms 2 and 3. The storage phase involves basically the sum of every element of the input data vector W to every counter of the selected rows, or hard locations, of matrix H. In order to accomplish the counting operation correctly, vector W must be represented with þ1 and 21 elements. The retrieval phase involves basically summing every element of the selected rows of matrix H to generate vector v, to which a threshold is applied to obtain the output vector O. In Algorithms 2 and 3, H is a matrix with M rows and U columns and W, v and O are vectors with 1 row and U columns. Algorithm 2. Algorithm for the storage phase of the second layer for row ¼ 0toðM 2 1Þ do if yðrowþ ¼1 then for col ¼ 0toðU 2 1Þ do Hðrow; colþ ¼Hðrow; colþþwðcolþ end if Algorithm 3. Algorithm for the reading phase of the second layer v ¼ 0 for row ¼ 1toðM 2 1Þ do if yðrowþ ¼1 then for col ¼ 0toðU 2 1Þ do vðcolþ ¼Hðrow; colþþvðcolþ

5 M.T.P. Silva et al. / Microprocessors and Microsystems 28 (2004) end if for col ¼ 0toðU 2 1Þ do if vðcolþ # 0 then oðcolþ ¼1 else oðcolþ ¼0 end if 3.3. Hardware implementation considerations The calculation of Hamming distances in Algorithm 1 assumes that the two functions ExclusiveOrðI; SðrowÞÞ and CountOnesðDifVectorÞ are available, but these functions are not normally in the repertoire of instructions of commercial microprocessors. Even for software implementation of the two functions we would have to consider also that microprocessors work with limited length operands, in the range of 64 bits nowadays, while addresses in SDMs are binary vectors with hundreds of bits. For addresses that are beyond the operand s length limit, the operation would have to be executed in several steps. In addition to that, the Hamming distance must be calculated between I and all the M sparse decoders of S, what results on an algorithm complexity of OðnMÞ: Since these operations are computationally intensive for large values of n and M; that is normally the case for SDMs, they look attractive for parallel hardware implementation. Bitwise hardware exclusive-or operations could be implemented in parallel between I and all the M sparse decoders. Counting the number of 1s in the resulting exclusive-or operations would normally be a serial operation. There is also an inherent parallelism in the operations of the second layer, since input data vector W is applied to all the selected hard locations. Nevertheless, the number of selected rows in matrix H would normally be a small portion of the total number of M hard locations, typically a number between 0.1 and 0.01 [4]. Parallel hardware would have to be implemented for the whole matrix H, but only a small part of it would be active at every memory access. The gain in performance of a possible hardware implementation of the second layer would also depend on the spatial position of the input vector I in relation to all sparse decoders of matrix S. For an input vector that is outside the intersection of two or more sparse decoders, the gain in performance would be null. The performance would also depend on the selected value of r; that is a user-defined parameter. So, we would have a variable gain in performance with a parallel hardware implementation of the second layer. In addition to that, two different hardware implementations would be needed, one for reading and the other for writing. It could also be observed that memory requirements for matrix S are much lesser than those for matrix H. For a SDM configuration with n ¼ 256; U ¼ 256; r ¼ 111 and M ¼ 16; 384; for example, the memory requirements for matrix S is equal to 16; bit, what is equivalent to 4 Mbits. Considering now that each position of matrix H stores an integer number, and considering also that 8 bits number are sufficient, memory requirements for matrix H for the same SDM above is 16; bits, what corresponds to 32 Mbits. In order to speed up local processing, fast and, consequently, lower capacity static memories chips are used, what makes it difficult to implement large local memory banks, as would be needed for the second layer. Therefore, the first layer algorithm was selected for hardware implementation Hardware implementation of the first layer Hamming distance calculation between input vector I and all the sparse decoders of matrix S can be carried out independently and in parallel. In our design, the elements of I, S and of the output vector Y are stored in three separate banks of static memory. The outputs of banks I and S are connected to the inputs of the PEs in order to generate input data for memory the bank Y (Fig. 3). The PEs are therefore responsible for calculating the distance between I and all the elements of S and then to generate vector Y that indicates the hard locations selected from matrix H. PEs are implemented within one Xilinx FPGA, what allows flexibility in the modification of some user-defined parameters: n (space dimension), r (radius) and M (number of hard locations). In the implementation of the PEs, a bit-serial strategy was adopted, as will be described in the next section Bit-serial processing element The serial PE (Fig. 4), instead of a parallel approach, was chosen for the implementation of the algorithm. The first reason for this choice was that the pin count for the serial design is much smaller than for the parallel one. This is due to the need for a ROM in the parallel approach that needs to be implemented externally to the FPGA. In addition to that, much more serial PEs the parallel PEs can be built into a FPGA. However, the design concept of the bit-parallel PE could be useful for a software implementation. Therefore, the chosen approach requires more simplified circuits and a more coherent design with current FPGAs architecture than the parallel implementation. Fig. 3. Static RAMs connections with the Processing Elements (PEs).

6 132 M.T.P. Silva et al. / Microprocessors and Microsystems 28 (2004) Fig. 4. PE bit-serial for the first layer of SDM. The bit-serial PE is composed basically by a counter and a simple combinational circuit. Before processing starts, the counter (Difference Counter DC) is reset and, for every new clock cycle, a bit i of the input vector I is compared with bit i of the address decoder j of matrix S by an exclusive-or gate. If the two bits I i and S ij are different, DC is enabled to count. The combinational circuit at the outputs of DC has the function to detect whether I i is within r bits from S ij : The output y of PE goes to 0 when the counting value of PE is larger than r and goes to 1 otherwise. Therefore, in the beginning of processing, DC ¼ 0 and y ¼ 1; when counting starts y may change to 0 if DC exceeds the pre-defined value of r. In order to speed-up processing, counting is interrupted when y changes to 1 by the return path between y and input AND gate. Since in SDMs the value of r is always less than n=2 the number of bits required to implement DC is n=2: Since the PEs process each bit of the input address in parallel, distance calculation for the current 32 PEs is interrupted when d. r for all of them. This allows the distance to the next 32 PEs to be calculated. Performance improvement is obtained since all 256 bits of each decoder do not need to be scanned for every input address. Only sparse decoders for which d # r have all the 256 bits considered. 4. Architecture of the RC-SDM The RC-SDM is composed basically by two FPGAs, three banks of memory and the interface circuits with the host processor, as shown in the diagram of Fig. 5. In the start-up phase, after the board is energized, the two FPGAs remain idle and their pins in high impedance. Next, the configuration program running in the host processor loads into them their bitstream files with their internal configurations. The configuration program also loads into the memories the data to be processed. After processing is finished, the host reads back the results of the processed data. Memory banks 1 and 2 are 32 bits wide, while bank 3 is 1 bit wide for the implementation of the PEs bit-serial approach. Fig. 5. PE bit-parallel for the first layer of SDM.

7 M.T.P. Silva et al. / Microprocessors and Microsystems 28 (2004) Fig. 6. PE bit-parallel for the first layer of SDM. It can observed from Fig. 5 that the board structure is reasonably flexible and open. Except for some limitations of the available hardware, the user has reasonable flexibility regarding the implementation of the algorithm. For example, a bit-parallel approach could be used instead of the current serial approach by simply changing the configuration program. Although, part of the control circuits for the communication between the board and the host are implemented in external programmable circuits (GALs), FPGA1 is also used for this purpose, what adds also flexibility for changing the internal communication protocol. The board structure was designed in such a way that the algorithm implementation is split into the two FPGAs. FPGA1 includes part of the communication circuits for exchanging information with the host, whereas FPGA2 is dedicated for to the implementation of the PEs. This gives also flexibility for the implementation of the PEs. The chips used to implement FPGA1 and FPGA2 were Xilinx XC4003E and XC4005E; with three and five thousand gates, respectively. The percentage of chip utilization of FPGA1 was 43% and of FPGA2 was 92% and the clock frequency was 20 MHz. A block diagram of the board after FPGAs configuration is presented in Fig. 6. As can be observed, FPGA2 contains 32 PEs, what leads to the processing of 32 sparse decoders in parallel. Control of memories carried on by FPGA1, that also interprets the following commands from the host: reading from and writing to the memories, initialize processing, read processing status, start processing and general initialization of the board. 5. Performance considerations In order to evaluate the performance of RC-SDM, two programs, one that uses the board and the other that does not, were implemented. In both programs, the SDM implemented was set with parameters n ¼ 256 and M ¼ 16; 384: The machine used to implement the programs and host the board was a PC microcomputer with a Pentium Celeron CPU running at 300 MHz. The programs were written in ANSI C with all SDM functions implemented in assembly. The main program written in C deals mainly with accesses to disk and screen, whereas the assembly routines treat SDM processing in both hardware and software versions of the program in order to have an unbiased software implementation. This assures that the comparison of the hardware is made with a as fast as possible software implementation. The second program consists of a modification of the first one, where the assembly routines were substituted by the processing in the board. Processing time, that was measured with a logic analyzer, of the assembly routine was 49.8 ms whereas the hardware processing at RC-SDM was ms, what resulted in a speed-up of about four times in relation to the software implementation. 6. Conclusions More than a proof-of-concept, the implementation of RC-SDM presented an efficient version of SDMs with

8 134 M.T.P. Silva et al. / Microprocessors and Microsystems 28 (2004) improved performance when compared to the equivalent software implementation. The proposed architecture has shown to be appropriate for the current application and flexible enough for further improvements and extensions. Since most of the hardware is implemented in the FPGAs, reconfiguration and changes in the current implementation can be easily accomplished in future developments. Current state-of-the-art FPGAs would have allowed a larger density circuit for higher dimensional SDMs, this work showed that, for a small-scale problem, the architecture of RC-SDM is suitable for a wide range of implementations. Acknowledgements The authors would like to thank the support from Xilinx University Program, CNPq and FINEP. References [1] A. Krikelis, C.C. Weems, Associative processing and processors, IEEE Computer (Guest Editorial) (November) (1994). [2] C. Orovas, Cellular Associative Networks for Pattern Recognition, PhD thesis, University of York, England, [3] P. Kanerva, Sparse Distribuited Memory, Bradford/MIT Press, Cambridge, USA, [4] P. Kanerva, Associative-memory models of the cerebellum, in: I. Aleksander, J. Taylor (Eds.), Artificial Neural Networks, Elsevier Science Publishers B. V, Amsterdam, [5] P. Kanerva, in: M.H. Hassoun (Ed.), Sparse Distributed Memory and Related Models, Associative Neural Memories: Theory and Implementation, Oxford University Press, New York, 1993, pp [6] R.W. Hartenstein et al., Custom Computing Machines vs. Hardware/ Software Co-Design: from a Globalized Point of View. In: 6th International Workshop on Field Programmable Logic And Applications, Darmstadt, Germany, September 23-25, [7] A.P. Braga, I. Aleksander, Geometrical treatment and statistical modeling of the distribution of patterns in the n-dimensional boolean space, Pattern Recognition Letters 16 (1994)

3.1 Description of Microprocessor. 3.2 History of Microprocessor

3.1 Description of Microprocessor. 3.2 History of Microprocessor 3.0 MAIN CONTENT 3.1 Description of Microprocessor The brain or engine of the PC is the processor (sometimes called microprocessor), or central processing unit (CPU). The CPU performs the system s calculating

More information

EE 3170 Microcontroller Applications

EE 3170 Microcontroller Applications EE 3170 Microcontroller Applications Lecture 4 : Processors, Computers, and Controllers - 1.2 (reading assignment), 1.3-1.5 Based on slides for ECE3170 by Profs. Kieckhafer, Davis, Tan, and Cischke Outline

More information

Sparse Distributed Memory Pattern Data Analysis

Sparse Distributed Memory Pattern Data Analysis Sparse Distributed Memory Pattern Data Analysis František Grebeníček * grebenic@dcse.fee.vutbr.cz Abstract: This paper discusses, how some statistical properties of pattern data can affect efficiency of

More information

discrete logic do not

discrete logic do not Welcome to my second year course on Digital Electronics. You will find that the slides are supported by notes embedded with the Powerpoint presentations. All my teaching materials are also available on

More information

Matrix Manipulation Using High Computing Field Programmable Gate Arrays

Matrix Manipulation Using High Computing Field Programmable Gate Arrays Matrix Manipulation Using High Computing Field Programmable Gate Arrays 1 Mr.Rounak R. Gupta, 2 Prof. Atul S. Joshi Department of Electronics and Telecommunication Engineering, Sipna College of Engineering

More information

CS Computer Architecture

CS Computer Architecture CS 35101 Computer Architecture Section 600 Dr. Angela Guercio Fall 2010 Computer Systems Organization The CPU (Central Processing Unit) is the brain of the computer. Fetches instructions from main memory.

More information

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance About the Author...xi

More information

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are:

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are: Problem 1: CLD2 Problems. (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are: C 0 = A + BD + C + BD C 1 = A + CD + CD + B C 2 = A + B + C + D C 3 = BD + CD + BCD + BC C 4

More information

Memory Systems IRAM. Principle of IRAM

Memory Systems IRAM. Principle of IRAM Memory Systems 165 other devices of the module will be in the Standby state (which is the primary state of all RDRAM devices) or another state with low-power consumption. The RDRAM devices provide several

More information

Microcomputer Architecture and Programming

Microcomputer Architecture and Programming IUST-EE (Chapter 1) Microcomputer Architecture and Programming 1 Outline Basic Blocks of Microcomputer Typical Microcomputer Architecture The Single-Chip Microprocessor Microprocessor vs. Microcontroller

More information

Address connections Data connections Selection connections

Address connections Data connections Selection connections Interface (cont..) We have four common types of memory: Read only memory ( ROM ) Flash memory ( EEPROM ) Static Random access memory ( SARAM ) Dynamic Random access memory ( DRAM ). Pin connections common

More information

FPGA for Dummies. Introduc)on to Programmable Logic

FPGA for Dummies. Introduc)on to Programmable Logic FPGA for Dummies Introduc)on to Programmable Logic FPGA for Dummies Historical introduc)on, where we come from; FPGA Architecture: Ø basic blocks (Logic, FFs, wires and IOs); Ø addi)onal elements; FPGA

More information

1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE:

1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: 1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: A microprocessor is a programmable electronics chip that has computing and decision making capabilities similar to central processing unit

More information

1.3 Data processing; data storage; data movement; and control.

1.3 Data processing; data storage; data movement; and control. CHAPTER 1 OVERVIEW ANSWERS TO QUESTIONS 1.1 Computer architecture refers to those attributes of a system visible to a programmer or, put another way, those attributes that have a direct impact on the logical

More information

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline CPE/EE 422/522 Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices Dr. Rhonda Kay Gaede UAH Outline Introduction Field-Programmable Gate Arrays Virtex Virtex-E, Virtex-II, and Virtex-II

More information

CHAPTER 1 Numerical Representation

CHAPTER 1 Numerical Representation CHAPTER 1 Numerical Representation To process a signal digitally, it must be represented in a digital format. This point may seem obvious, but it turns out that there are a number of different ways to

More information

Register Transfer and Micro-operations

Register Transfer and Micro-operations Register Transfer Language Register Transfer Bus Memory Transfer Micro-operations Some Application of Logic Micro Operations Register Transfer and Micro-operations Learning Objectives After reading this

More information

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

ASSEMBLY LANGUAGE MACHINE ORGANIZATION ASSEMBLY LANGUAGE MACHINE ORGANIZATION CHAPTER 3 1 Sub-topics The topic will cover: Microprocessor architecture CPU processing methods Pipelining Superscalar RISC Multiprocessing Instruction Cycle Instruction

More information

Digital IP Cell 8-bit Microcontroller PE80

Digital IP Cell 8-bit Microcontroller PE80 1. Description The is a Z80 compliant processor soft-macro - IP block that can be implemented in digital or mixed signal ASIC designs. The Z80 and its derivatives and clones make up one of the most commonly

More information

A Low Power DDR SDRAM Controller Design P.Anup, R.Ramana Reddy

A Low Power DDR SDRAM Controller Design P.Anup, R.Ramana Reddy A Low Power DDR SDRAM Controller Design P.Anup, R.Ramana Reddy Abstract This paper work leads to a working implementation of a Low Power DDR SDRAM Controller that is meant to be used as a reference for

More information

SAE5C Computer Organization and Architecture. Unit : I - V

SAE5C Computer Organization and Architecture. Unit : I - V SAE5C Computer Organization and Architecture Unit : I - V UNIT-I Evolution of Pentium and Power PC Evolution of Computer Components functions Interconnection Bus Basics of PCI Memory:Characteristics,Hierarchy

More information

Software and Hardware

Software and Hardware Software and Hardware Numbers At the most fundamental level, a computer manipulates electricity according to specific rules To make those rules produce something useful, we need to associate the electrical

More information

UNIT - V MEMORY P.VIDYA SAGAR ( ASSOCIATE PROFESSOR) Department of Electronics and Communication Engineering, VBIT

UNIT - V MEMORY P.VIDYA SAGAR ( ASSOCIATE PROFESSOR) Department of Electronics and Communication Engineering, VBIT UNIT - V MEMORY P.VIDYA SAGAR ( ASSOCIATE PROFESSOR) contents Memory: Introduction, Random-Access memory, Memory decoding, ROM, Programmable Logic Array, Programmable Array Logic, Sequential programmable

More information

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

Lecture-15 W-Z: Increment-Decrement Address Latch:

Lecture-15 W-Z: Increment-Decrement Address Latch: Lecture-15 W-Z: (W) and (Z) are two 8-bit temporary registers not accessible to the user. They are exclusively used for the internal operation by the microprocessor. These registers are used either to

More information

Microprocessors and Microcontrollers (EE-231)

Microprocessors and Microcontrollers (EE-231) Microprocessors and Microcontrollers (EE-231) Main Objectives 8088 and 80188 8-bit Memory Interface 8086 t0 80386SX 16-bit Memory Interface I/O Interfacing I/O Address Decoding More on Address Decoding

More information

CC312: Computer Organization

CC312: Computer Organization CC312: Computer Organization 1 Chapter 1 Introduction Chapter 1 Objectives Know the difference between computer organization and computer architecture. Understand units of measure common to computer systems.

More information

M. Sc (CS) (II Semester) Examination, Subject: Computer System Architecture Paper Code: M.Sc-CS-203. Time: Three Hours] [Maximum Marks: 60

M. Sc (CS) (II Semester) Examination, Subject: Computer System Architecture Paper Code: M.Sc-CS-203. Time: Three Hours] [Maximum Marks: 60 M. Sc (CS) (II Semester) Examination, 2012-13 Subject: Computer System Architecture Paper Code: M.Sc-CS-203 Time: Three Hours] [Maximum Marks: 60 Note: Question Number 1 is compulsory. Answer any four

More information

Towards a Dynamically Reconfigurable System-on-Chip Platform for Video Signal Processing

Towards a Dynamically Reconfigurable System-on-Chip Platform for Video Signal Processing Towards a Dynamically Reconfigurable System-on-Chip Platform for Video Signal Processing Walter Stechele, Stephan Herrmann, Andreas Herkersdorf Technische Universität München 80290 München Germany Walter.Stechele@ei.tum.de

More information

THE OPTIUM MICROPROCESSOR AN FPGA-BASED IMPLEMENTATION

THE OPTIUM MICROPROCESSOR AN FPGA-BASED IMPLEMENTATION THE OPTIUM MICROPROCESSOR AN FPGA-BASED IMPLEMENTATION Radu Balaban Computer Science student, Technical University of Cluj Napoca, Romania horizon3d@yahoo.com Horea Hopârtean Computer Science student,

More information

COMPUTER ORGANISATION CHAPTER 1 BASIC STRUCTURE OF COMPUTERS

COMPUTER ORGANISATION CHAPTER 1 BASIC STRUCTURE OF COMPUTERS Computer types: - COMPUTER ORGANISATION CHAPTER 1 BASIC STRUCTURE OF COMPUTERS A computer can be defined as a fast electronic calculating machine that accepts the (data) digitized input information process

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

Roberto Muscedere Images and Text Portions 2003 Prentice Hall 1

Roberto Muscedere Images and Text Portions 2003 Prentice Hall 1 Microcomputer Structure and Operation Chapter 5 A Microprocessor ( P) contains the controller, ALU and internal registers A Microcomputer ( C) contains a microprocessor, memory (RAM, ROM, etc), input and

More information

EECS 579: Built-in Self-Test 3. Regular Circuits

EECS 579: Built-in Self-Test 3. Regular Circuits EECS 579: Built-in Self-Test 3 Outline Implementing BIST by regularization Adder ALU RAM Commercial BIST approaches LOCSD STUMPS CSTP Case Study Bosch AE11 microcontroller John P. Hayes University of Michigan

More information

Chapter 2 Basic Logic Circuits and VHDL Description

Chapter 2 Basic Logic Circuits and VHDL Description Chapter 2 Basic Logic Circuits and VHDL Description We cannot solve our problems with the same thinking we used when we created them. ----- Albert Einstein Like a C or C++ programmer don t apply the logic.

More information

Basic Processing Unit: Some Fundamental Concepts, Execution of a. Complete Instruction, Multiple Bus Organization, Hard-wired Control,

Basic Processing Unit: Some Fundamental Concepts, Execution of a. Complete Instruction, Multiple Bus Organization, Hard-wired Control, UNIT - 7 Basic Processing Unit: Some Fundamental Concepts, Execution of a Complete Instruction, Multiple Bus Organization, Hard-wired Control, Microprogrammed Control Page 178 UNIT - 7 BASIC PROCESSING

More information

Lecture 3 Introduction to VHDL

Lecture 3 Introduction to VHDL CPE 487: Digital System Design Spring 2018 Lecture 3 Introduction to VHDL Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 Managing Design

More information

Chapter 2: Number Systems

Chapter 2: Number Systems Chapter 2: Number Systems Logic circuits are used to generate and transmit 1s and 0s to compute and convey information. This two-valued number system is called binary. As presented earlier, there are many

More information

Digital Design, Kyung Hee Univ. Chapter 7. Memory and Programmable Logic

Digital Design, Kyung Hee Univ. Chapter 7. Memory and Programmable Logic Chapter 7. Memory and Programmable Logic 1 7.1 Introduction Memory unit: A device to which binary information is transferred for storage and from which information is retrieved when needed for processing

More information

Chapter 8 Memory Basics

Chapter 8 Memory Basics Logic and Computer Design Fundamentals Chapter 8 Memory Basics Charles Kime & Thomas Kaminski 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Overview Memory definitions Random Access

More information

COMPUTER SIMULATION OF COMPLEX SYSTEMS USING AUTOMATA NETWORKS K. Ming Leung

COMPUTER SIMULATION OF COMPLEX SYSTEMS USING AUTOMATA NETWORKS K. Ming Leung POLYTECHNIC UNIVERSITY Department of Computer and Information Science COMPUTER SIMULATION OF COMPLEX SYSTEMS USING AUTOMATA NETWORKS K. Ming Leung Abstract: Computer simulation of the dynamics of complex

More information

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING. Principles of Computer Operation

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING. Principles of Computer Operation UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING Experiment PCO: Principles of Computer Operation Location: Part I Lab., CYC 102. Objective: The objective is to learn the basic

More information

Re-configurable VLIW processor for streaming data

Re-configurable VLIW processor for streaming data International Workshop NGNT 97 Re-configurable VLIW processor for streaming data V. Iossifov Studiengang Technische Informatik, FB Ingenieurwissenschaften 1, FHTW Berlin. G. Megson School of Computer Science,

More information

UNIT V MICRO CONTROLLER PROGRAMMING & APPLICATIONS TWO MARKS. 3.Give any two differences between microprocessor and micro controller.

UNIT V MICRO CONTROLLER PROGRAMMING & APPLICATIONS TWO MARKS. 3.Give any two differences between microprocessor and micro controller. UNIT V -8051 MICRO CONTROLLER PROGRAMMING & APPLICATIONS TWO MARKS 1. What is micro controller? Micro controller is a microprocessor with limited number of RAM, ROM, I/O ports and timer on a single chip

More information

LABORATORY USE OF A MICROCOMPUTER (Last Revision: August 27, 2000)

LABORATORY USE OF A MICROCOMPUTER (Last Revision: August 27, 2000) LABORATORY USE OF A MICROCOMPUTER (Last Revision: August 27, 2000) ABSTRACT: A program, LabVIEW, is used to enable a microcomputer to acquire and manipulate data and to generate output voltages. TEXT REFERENCE:

More information

Introduction to Microcontrollers

Introduction to Microcontrollers Introduction to Microcontrollers Embedded Controller Simply an embedded controller is a controller that is embedded in a greater system. One can define an embedded controller as a controller (or computer)

More information

Sencer Yeralan and Helen Emery Gainesville, Florida January 2000

Sencer Yeralan and Helen Emery Gainesville, Florida January 2000 Preface This book is an outgrowth of the notes and experiments developed for the graduate classes at the University of Florida. It is intended for students, hobbyists, engineers, and scientists who would

More information

DP8420V 21V 22V-33 DP84T22-25 microcmos Programmable 256k 1M 4M Dynamic RAM Controller Drivers

DP8420V 21V 22V-33 DP84T22-25 microcmos Programmable 256k 1M 4M Dynamic RAM Controller Drivers DP8420V 21V 22V-33 DP84T22-25 microcmos Programmable 256k 1M 4M Dynamic RAM Controller Drivers General Description The DP8420V 21V 22V-33 DP84T22-25 dynamic RAM controllers provide a low cost single chip

More information

AMD actual programming and testing on a system board. We will take a simple design example and go through the various stages of this design process.

AMD actual programming and testing on a system board. We will take a simple design example and go through the various stages of this design process. actual programming and testing on a system board. We will take a simple design example and go through the various stages of this design process. Conceptualize A Design Problem Select Device Implement Design

More information

Multiple Choice Type Questions

Multiple Choice Type Questions Techno India Batanagar Computer Science and Engineering Model Questions Subject Name: Computer Architecture Subject Code: CS 403 Multiple Choice Type Questions 1. SIMD represents an organization that.

More information

MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS

MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS UNIT I INTRODUCTION TO 8085 8085 Microprocessor - Architecture and its operation, Concept of instruction execution and timing diagrams, fundamentals of

More information

Chapter 13 Programmable Logic Device Architectures

Chapter 13 Programmable Logic Device Architectures Chapter 13 Programmable Logic Device Architectures Chapter 13 Objectives Selected areas covered in this chapter: Describing different categories of digital system devices. Describing different types of

More information

Summer 2003 Lecture 18 07/09/03

Summer 2003 Lecture 18 07/09/03 Summer 2003 Lecture 18 07/09/03 NEW HOMEWORK Instruction Execution Times: The 8088 CPU is a synchronous machine that operates at a particular clock frequency. In the case of the original IBM PC, that clock

More information

THE MICROCOMPUTER SYSTEM CHAPTER - 2

THE MICROCOMPUTER SYSTEM CHAPTER - 2 THE MICROCOMPUTER SYSTEM CHAPTER - 2 20 2.1 GENERAL ASPECTS The first computer was developed using vacuum tubes. The computers thus developed were clumsy and dissipating more power. After the invention

More information

CHAPTER 12 ARRAY SUBSYSTEMS [ ] MANJARI S. KULKARNI

CHAPTER 12 ARRAY SUBSYSTEMS [ ] MANJARI S. KULKARNI CHAPTER 2 ARRAY SUBSYSTEMS [2.4-2.9] MANJARI S. KULKARNI OVERVIEW Array classification Non volatile memory Design and Layout Read-Only Memory (ROM) Pseudo nmos and NAND ROMs Programmable ROMS PROMS, EPROMs,

More information

register:a group of binary cells suitable for holding binary information flip-flops + gates

register:a group of binary cells suitable for holding binary information flip-flops + gates 9 차시 1 Ch. 6 Registers and Counters 6.1 Registers register:a group of binary cells suitable for holding binary information flip-flops + gates control when and how new information is transferred into the

More information

Mobile Robot Path Planning Software and Hardware Implementations

Mobile Robot Path Planning Software and Hardware Implementations Mobile Robot Path Planning Software and Hardware Implementations Lucia Vacariu, Flaviu Roman, Mihai Timar, Tudor Stanciu, Radu Banabic, Octavian Cret Computer Science Department, Technical University of

More information

Placement Algorithm for FPGA Circuits

Placement Algorithm for FPGA Circuits Placement Algorithm for FPGA Circuits ZOLTAN BARUCH, OCTAVIAN CREŢ, KALMAN PUSZTAI Computer Science Department, Technical University of Cluj-Napoca, 26, Bariţiu St., 3400 Cluj-Napoca, Romania {Zoltan.Baruch,

More information

Lab 6 Using PicoBlaze. Fast Sorting.

Lab 6 Using PicoBlaze. Fast Sorting. Lab 6 Using PicoBlaze. Fast Sorting. Design, implement, and verify experimentally a circuit shown in the block diagram below, composed of the following major components: PicoBlaze-6 microcontroller with

More information

Digital System Design Using Verilog. - Processing Unit Design

Digital System Design Using Verilog. - Processing Unit Design Digital System Design Using Verilog - Processing Unit Design 1.1 CPU BASICS A typical CPU has three major components: (1) Register set, (2) Arithmetic logic unit (ALU), and (3) Control unit (CU) The register

More information

The British Broadcasting Corporation Microcomputer Second Processor

The British Broadcasting Corporation Microcomputer Second Processor The British Broadcasting Corporation Microcomputer 32016 Second Processor The British Broadcasting Corporation Microcomputer 32016 Second Processor The 32016 Second Processor is an extension unit which

More information

The QR code here provides a shortcut to go to the course webpage.

The QR code here provides a shortcut to go to the course webpage. Welcome to this MSc Lab Experiment. All my teaching materials for this Lab-based module are also available on the webpage: www.ee.ic.ac.uk/pcheung/teaching/msc_experiment/ The QR code here provides a shortcut

More information

Introduction to Computer Science. Homework 1

Introduction to Computer Science. Homework 1 Introduction to Computer Science Homework. In each circuit below, the rectangles represent the same type of gate. Based on the input and output information given, identify whether the gate involved is

More information

arxiv:physics/ v1 [physics.ins-det] 5 Mar 2007 Gate Arrays

arxiv:physics/ v1 [physics.ins-det] 5 Mar 2007 Gate Arrays A Hardware Implementation of Artificial Neural Network Using Field Programmable arxiv:physics/0703041v1 [physics.ins-det] 5 Mar 2007 Gate Arrays E. Won Department of Physics, Korea University, Seoul 136-713,

More information

Design & Implementation of AHB Interface for SOC Application

Design & Implementation of AHB Interface for SOC Application Design & Implementation of AHB Interface for SOC Application Sangeeta Mangal M. Tech. Scholar Department of Electronics & Communication Pacific University, Udaipur (India) enggsangeetajain@gmail.com Nakul

More information

Computer Systems. Binary Representation. Binary Representation. Logical Computation: Boolean Algebra

Computer Systems. Binary Representation. Binary Representation. Logical Computation: Boolean Algebra Binary Representation Computer Systems Information is represented as a sequence of binary digits: Bits What the actual bits represent depends on the context: Seminar 3 Numerical value (integer, floating

More information

Rectangular Coordinates in Space

Rectangular Coordinates in Space Rectangular Coordinates in Space Philippe B. Laval KSU Today Philippe B. Laval (KSU) Rectangular Coordinates in Space Today 1 / 11 Introduction We quickly review one and two-dimensional spaces and then

More information

The 80C186XL 80C188XL Integrated Refresh Control Unit

The 80C186XL 80C188XL Integrated Refresh Control Unit APPLICATION BRIEF The 80C186XL 80C188XL Integrated Refresh Control Unit GARRY MION ECO SENIOR APPLICATIONS ENGINEER November 1994 Order Number 270520-003 Information in this document is provided in connection

More information

Climate Precipitation Prediction by Neural Network

Climate Precipitation Prediction by Neural Network Journal of Mathematics and System Science 5 (205) 207-23 doi: 0.7265/259-529/205.05.005 D DAVID PUBLISHING Juliana Aparecida Anochi, Haroldo Fraga de Campos Velho 2. Applied Computing Graduate Program,

More information

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING Experiment PCO: Principles of Computer Operation Location: Part I Lab., CYC 102. Objective: The objective is to learn the basic

More information

Spiral 2-8. Cell Layout

Spiral 2-8. Cell Layout 2-8.1 Spiral 2-8 Cell Layout 2-8.2 Learning Outcomes I understand how a digital circuit is composed of layers of materials forming transistors and wires I understand how each layer is expressed as geometric

More information

Chapter 5 12/2/2013. Objectives. Computer Systems Organization. Objectives. Objectives (continued) Introduction. INVITATION TO Computer Science 1

Chapter 5 12/2/2013. Objectives. Computer Systems Organization. Objectives. Objectives (continued) Introduction. INVITATION TO Computer Science 1 Chapter 5 Computer Systems Organization Objectives In this chapter, you will learn about: The components of a computer system Putting all the pieces together the Von Neumann architecture The future: non-von

More information

Chapter 1 Microprocessor architecture ECE 3120 Dr. Mohamed Mahmoud http://iweb.tntech.edu/mmahmoud/ mmahmoud@tntech.edu Outline 1.1 Computer hardware organization 1.1.1 Number System 1.1.2 Computer hardware

More information

Understanding the basic building blocks of a microcontroller device in general. Knows the terminologies like embedded and external memory devices,

Understanding the basic building blocks of a microcontroller device in general. Knows the terminologies like embedded and external memory devices, Understanding the basic building blocks of a microcontroller device in general. Knows the terminologies like embedded and external memory devices, CISC and RISC processors etc. Knows the architecture and

More information

Computer Architecture Review. ICS332 - Spring 2016 Operating Systems

Computer Architecture Review. ICS332 - Spring 2016 Operating Systems Computer Architecture Review ICS332 - Spring 2016 Operating Systems ENIAC (1946) Electronic Numerical Integrator and Calculator Stored-Program Computer (instead of Fixed-Program) Vacuum tubes, punch cards

More information

4. Write a sum-of-products representation of the following circuit. Y = (A + B + C) (A + B + C)

4. Write a sum-of-products representation of the following circuit. Y = (A + B + C) (A + B + C) COP 273, Winter 26 Exercises 2 - combinational logic Questions. How many boolean functions can be defined on n input variables? 2. Consider the function: Y = (A B) (A C) B (a) Draw a combinational logic

More information

Introduction to Microprocessor

Introduction to Microprocessor Introduction to Microprocessor Slide 1 Microprocessor A microprocessor is a multipurpose, programmable, clock-driven, register-based electronic device That reads binary instructions from a storage device

More information

Microprocessor Theory

Microprocessor Theory Microprocessor Theory and Applications with 68000/68020 and Pentium M. RAFIQUZZAMAN, Ph.D. Professor California State Polytechnic University Pomona, California and President Rafi Systems, Inc. WILEY A

More information

Computer Systems Organization

Computer Systems Organization The IAS (von Neumann) Machine Computer Systems Organization Input Output Equipment Stored Program concept Main memory storing programs and data ALU operating on binary data Control unit interpreting instructions

More information

ECE 571 Advanced Microprocessor-Based Design Lecture 3

ECE 571 Advanced Microprocessor-Based Design Lecture 3 ECE 571 Advanced Microprocessor-Based Design Lecture 3 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 30 January 2018 Homework #1 was posted Announcements 1 Microprocessors Also

More information

SHARED MEMORY VS DISTRIBUTED MEMORY

SHARED MEMORY VS DISTRIBUTED MEMORY OVERVIEW Important Processor Organizations 3 SHARED MEMORY VS DISTRIBUTED MEMORY Classical parallel algorithms were discussed using the shared memory paradigm. In shared memory parallel platform processors

More information

Visualizing Data Flow and Control Signaling Inside the Microprocessor

Visualizing Data Flow and Control Signaling Inside the Microprocessor Visualizing Data Flow and Control Signaling Inside the Microprocessor Ms. Isha Sharma 1, Mrs. Neha Sharma 2, Mr. Jitender Chhabra 3 1 M.Tech. Scholar, SGTIET, Gurgaon. 2 Asst. Professor, SGTIET, Gurgaon

More information

DP8420A,DP8421A,DP8422A

DP8420A,DP8421A,DP8422A DP8420A,DP8421A,DP8422A DP8420A DP8421A DP8422A microcmos Programmable 256k/1M/4M Dynamic RAM Controller/Drivers Literature Number: SNOSBX7A DP8420A 21A 22A microcmos Programmable 256k 1M 4M Dynamic RAM

More information

x86 Architectures; Assembly Language Basics of Assembly language for the x86 and x86_64 architectures

x86 Architectures; Assembly Language Basics of Assembly language for the x86 and x86_64 architectures x86 Architectures; Assembly Language Basics of Assembly language for the x86 and x86_64 architectures topics Preliminary material a look at what Assembly Language works with - How processors work»a moment

More information

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE4220. PROGRAMMABLE LOGIC DEVICES (PLDs)

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE4220. PROGRAMMABLE LOGIC DEVICES (PLDs) COURSE / CODE DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE4220 PROGRAMMABLE LOGIC DEVICES (PLDs) A PLD, or programmable logic device, is an electronic component that is used

More information

Learning Outcomes. Spiral 3 1. Digital Design Targets ASICS & FPGAS REVIEW. Hardware/Software Interfacing

Learning Outcomes. Spiral 3 1. Digital Design Targets ASICS & FPGAS REVIEW. Hardware/Software Interfacing 3-. 3-.2 Learning Outcomes Spiral 3 Hardware/Software Interfacing I understand the PicoBlaze bus interface signals: PORT_ID, IN_PORT, OUT_PORT, WRITE_STROBE I understand how a memory map provides the agreement

More information

Massively Parallel Computing on Silicon: SIMD Implementations. V.M.. Brea Univ. of Santiago de Compostela Spain

Massively Parallel Computing on Silicon: SIMD Implementations. V.M.. Brea Univ. of Santiago de Compostela Spain Massively Parallel Computing on Silicon: SIMD Implementations V.M.. Brea Univ. of Santiago de Compostela Spain GOAL Give an overview on the state-of of-the- art of Digital on-chip CMOS SIMD Solutions,

More information

Module 5 - CPU Design

Module 5 - CPU Design Module 5 - CPU Design Lecture 1 - Introduction to CPU The operation or task that must perform by CPU is: Fetch Instruction: The CPU reads an instruction from memory. Interpret Instruction: The instruction

More information

PIPELINE AND VECTOR PROCESSING

PIPELINE AND VECTOR PROCESSING PIPELINE AND VECTOR PROCESSING PIPELINING: Pipelining is a technique of decomposing a sequential process into sub operations, with each sub process being executed in a special dedicated segment that operates

More information

Unit - II. Computer Concepts and C Programming 06CCP13. Unit II

Unit - II. Computer Concepts and C Programming 06CCP13. Unit II Computer Concepts and C Programming () Unit II Unit Division Unit-II (6 Hours) Processing Data Storing Data Topics Transforming Data into Information How computers represent data How computers process

More information

Lecture 2 Microcomputer Organization: Fig.1.1 Basic Components of Microcomputer

Lecture 2 Microcomputer Organization: Fig.1.1 Basic Components of Microcomputer Lecture 2 Microcomputer Organization: As discussed in previous lecture microprocessor is a central processing unit (CPU) with its related timing functions on a single chip. A microprocessor combined with

More information

Hardware Description of Multi-Directional Fast Sobel Edge Detection Processor by VHDL for Implementing on FPGA

Hardware Description of Multi-Directional Fast Sobel Edge Detection Processor by VHDL for Implementing on FPGA Hardware Description of Multi-Directional Fast Sobel Edge Detection Processor by VHDL for Implementing on FPGA Arash Nosrat Faculty of Engineering Shahid Chamran University Ahvaz, Iran Yousef S. Kavian

More information

Programmable Logic Devices FPGA Architectures II CMPE 415. Overview This set of notes introduces many of the features available in the FPGAs of today.

Programmable Logic Devices FPGA Architectures II CMPE 415. Overview This set of notes introduces many of the features available in the FPGAs of today. Overview This set of notes introduces many of the features available in the FPGAs of today. The majority use SRAM based configuration cells, which allows fast reconfiguation. Allows new design ideas to

More information

System Unit Components Chapter2

System Unit Components Chapter2 System Unit Components Chapter2 ITBIS105 IS-IT-UOB 2013 The System Unit What is the system unit? Case that contains electronic components of the computer used to process data Sometimes called the chassis

More information

INTRODUCTION TO COMPUTERS

INTRODUCTION TO COMPUTERS INTRODUCTION TO COMPUTERS When we talk about computers, we really are talking about a Computer System. Computer System: It is a combination of Hardware and Software. This combination allows a computer

More information

Mechatronics and Measurement. Lecturer:Dung-An Wang Lecture 6

Mechatronics and Measurement. Lecturer:Dung-An Wang Lecture 6 Mechatronics and Measurement Lecturer:Dung-An Wang Lecture 6 Lecture outline Reading:Ch7 of text Today s lecture: Microcontroller 2 7.1 MICROPROCESSORS Hardware solution: consists of a selection of specific

More information

Chapter 2 Parallel Hardware

Chapter 2 Parallel Hardware Chapter 2 Parallel Hardware Part I. Preliminaries Chapter 1. What Is Parallel Computing? Chapter 2. Parallel Hardware Chapter 3. Parallel Software Chapter 4. Parallel Applications Chapter 5. Supercomputers

More information

Reconfiguration of Memory for High Speed Matrix Multiplication

Reconfiguration of Memory for High Speed Matrix Multiplication Reconfiguration of Memory for High Speed Matrix Multiplication Ms. Shamshad Shirgeri 1,Ms. Pallavi Umesh Naik 2,Mrs. Rohini 3, Prof. Krishnananda Shet 4 1,2,3 Student, M.Tech in Industrial Electronics,

More information

Instantaneously trained neural networks with complex inputs

Instantaneously trained neural networks with complex inputs Louisiana State University LSU Digital Commons LSU Master's Theses Graduate School 2003 Instantaneously trained neural networks with complex inputs Pritam Rajagopal Louisiana State University and Agricultural

More information