Memory Systems and Operations in Microprocessor Systems (Spring 2012, Morrow), Exercises of Computer Science

Information on various memory structures, their sizes, and memory operations in the context of microprocessor systems. Students are required to design and simulate a simple memory cell and sram using quartus, understand memory endian-ness, and explore the significance and differences between risc and cisc architectures. The document also includes quiz questions.

Typology: Exercises

2012/2013

Uploaded on 03/23/2013

dhruv
dhruv 🇮🇳

4.3

(12)

194 documents

1 / 3

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Spring 2012 (Morrow)
1
1. (10 points) Memory Structures
A. For each of the below memory structures, express the memory size in bytes using the
appropriate prefix (K, M, G, etc).
a. 8589934592 x 2b
b. 32768 x 32b
c. 512 x 128b
d. 1048576 x 16b
B. For byte-wide memories of sizes 1KB, 1MB, 1GB, and 1TB, what is the number of memory
locations and the range of addresses for each device, all expressed in hexadecimal. How many
address bits are required for each range of addresses?
2. (15 points) Review of Memory Construction
A simple memory cell with bidirectional data can be constructed using just a D-FF and a tri-state
buffer. Using Quartus, you are to create such a memory cell, and then use it to construct an 8 x
4b memory. Implement your design by using the sample Quartus project linked on the course
web page as a starting point. Delete the file ece315_top.bdf, and set a new file sram_8x4.bdf to
be your top-level file. Create another new file mem_cell.bdf, and implement a single-bit memory
cell. Then use good hierarchical design techniques to create the logic for an 8x4b SRAM. You
may only use the following library parts in your design input (pin), bidir (pin), dff, tri, and2,
and3, not. All parts can be found under the primitives tree in the Quartus Symbol window.
Note that this is an asynchronous design there is no clock. Your circuit should have the
following external connections; A2, A1, A0, D3, D2, D1, D0, nWR, nRD. nWR and nRD are
active-low write and read signals, respectively. The data for a write operation should be stored
on the rising edge of nWR. D3-D0 are bidirectional data lines. It is assumed that you will never
drive the data lines while nRD is asserted. Use the minimum number of devices required to
complete the circuit.
Turn in paper copies of all BDF files.
3. (15 points) Review of Memory Operation
A. For the circuit you designed in #2 above, run a functional simulation to do the following -
1) write the 1’s-complement of the address of each memory location into each memory
location, starting at address 0
2) read the value of each memory location, starting at address 7
Make the read and write signals active for 10ns during each operation, and allow 10ns between
each transfer with both nRd and nWR negated. Turn in a paper copy of your simulation trace.
Annotate your trace to clearly indicate what is happening.
Docsity.com
pf3

Partial preview of the text

Download Memory Systems and Operations in Microprocessor Systems (Spring 2012, Morrow) and more Exercises Computer Science in PDF only on Docsity!

Spring 2012 (Morrow) 1

1. (10 points) Memory Structures

A. For each of the below memory structures, express the memory size in bytes using the appropriate prefix (K, M, G, etc). a. 8589934592 x 2b b. 32768 x 32b c. 512 x 128b d. 1048576 x 16b

B. For byte-wide memories of sizes 1KB, 1MB, 1GB, and 1TB, what is the number of memory locations and the range of addresses for each device, all expressed in hexadecimal. How many address bits are required for each range of addresses?

2. (15 points) Review of Memory Construction

A simple memory cell with bidirectional data can be constructed using just a D-FF and a tri-state buffer. Using Quartus, you are to create such a memory cell, and then use it to construct an 8 x 4b memory. Implement your design by using the sample Quartus project linked on the course web page as a starting point. Delete the file ece315_top.bdf , and set a new file sram_8x4.bdf to be your top-level file. Create another new file mem_cell.bdf , and implement a single-bit memory cell. Then use good hierarchical design techniques to create the logic for an 8x4b SRAM. You may only use the following library parts in your design – input (pin), bidir (pin), dff , tri , and2 , and3 , not. All parts can be found under the primitives tree in the Quartus Symbol window.

Note that this is an asynchronous design – there is no clock. Your circuit should have the following external connections; A2, A1, A0, D3, D2, D1, D0, nWR, nRD. nWR and nRD are active-low write and read signals, respectively. The data for a write operation should be stored on the rising edge of nWR. D3-D0 are bidirectional data lines. It is assumed that you will never drive the data lines while nRD is asserted. Use the minimum number of devices required to complete the circuit.

Turn in paper copies of all BDF files.

3. (15 points) Review of Memory Operation

A. For the circuit you designed in #2 above, run a functional simulation to do the following -

  1. write the 1’s-complement of the address of each memory location into each memory location, starting at address 0
  2. read the value of each memory location, starting at address 7 Make the read and write signals active for 10ns during each operation, and allow 10ns between each transfer with both nRd and nWR negated. Turn in a paper copy of your simulation trace. Annotate your trace to clearly indicate what is happening.

ECE 353 Introduction to Microprocessor Systems

Spring 2012 (Morrow) 2

B. How would the simulation results change if a timing simulation were run instead of a functional simulation? C. What does it mean when we say a signal is active-high or active-low?

4. (10 points) Memory Map

A microprocessor generates 32-bit memory addresses. Draw a byte-wide memory map of its address space with all boundaries specified in hexadecimal. A 512MB ROM is located in the address space ending at the highest possible address. A 128KB block of memory mapped I/O is located at base address 0x90000000. A 2GB RAM is located at the lowest memory addresses. Show all of these devices in the memory map with their boundaries labeled in hexadecimal. How large is the total address space (in bytes)?

5. (18 points) Flags Register

Microprocessors typically have a flags register (also commonly called a condition codes register or processor status register) where certain information about recent operations is stored. Common information includes whether there was an arithmetic overflow (for unsigned and signed operation), if the result was negative, and if the result was zero. (In the ARM7, these correspond to the CPSR register’s C (unsigned overflow), V (2’s-complement overflow), N (negative), and Z (zero) bits.) Assume that a microprocessor’s ALU has an 8-bit adder as shown below. A. Draw logic to show how the four flag bits implemented in the ARM7 can be efficiently generated for this ALU. B. Explain how arithmetic overflow is detected for unsigned and signed operations, with examples.

6. (10 points) Memory Endian-ness

The unsigned value 0xDEADBEEF is to be stored in memory as a 32-bit value at address 0x40001234. Using small segments of a byte-wide memory map, show how it will be stored into memory in both a little-endian and big-endian system.