How does the Program read 32 bit from the memory in a single clock cycle?

Vedanta Mohapatra

So, I have this assignment where I need to design a RISC-32-bit 5 stage pipeline. I must support at least 32 (32-bit) instructions and 32 (32-bit) data values. The memory should be read in 1 clock cycle. Now, for this, I have used a word addressable memory (1 address will contain 32 bits). But, I want to make this byte addressable.

One way of doing this is making the external clock four times slower and then passing these into the other stages of the pipeline. But passing the original clock into the memory part. But, this will make the simulation a bit hectic, like I have to run the clock 20 times (instead of 5).

Another way of doing this will be running a clock (attached to the memory) that will be four times faster than the external clock. So, by the time a single clock cycle passes, memory will be accessed four times so that we would have brought the complete 32-bit. But, circuits for doubling/quadrupling the frequency of a clock seem too complicated.

Are there simpler frequency doubler circuits that can be implemented, or is there any other way to do this?

I am using logisim-evolution to simulate this, and for the memory part, I have used the in-built RAM.

This is the RAM: RAM

supercat

The normal way to make a 32-bit byte-addressable memory is to have four 8-bit memory subsystems that are all fed the top N-2 bits of the byte address. When doing a 32-bit load or store, all four memory subsystems will be active. When doing a 16-bit load or store, the second-from-the-bottom address bit will be used control whether to activate the first and second subsystems or the third and fourth. When doing an 8-bit load or store, the bottom address bit will select between the first and second, or between the third and fourth, subsystem.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Clock cycle and memory usage of an 8085 assembler program

C how to read in a single bit from a file

How to read multiple records from Kafka in a single cycle using Java

Data path on a single-cycle 32-bit MIPS processor

Run 32bit program with memory for a 64bit

What does it mean for a program to be 32 or 64 bit?

How to make a 32-bit program from a 64-bit version?

How to use a PLL to make a 50% duty cycle clock from a non 50% duty cycle clock

How to map a 32 bit memory address coming from CPU to a local memory in C

In a RISC/MIPS-32bit architecture, how does an instruction target a remote memory address that falls out of the offset?

Read a single bit from a buffer of char

Assembly 32-bit - Calling a program from another program

How does the 64 bit linux kernel kick off a 32 bit process from an ELF

How does Triple Channel memory differ from Single or Dual?

How to read a single bit buffer in node

How 32bit architecture is differ from 64bit architecture mainly in form of app speed and memory management?

How can I tell if I'm running in 64-bit JVM or 32-bit JVM (from within a program)?

What does memory 32bit Alignement constraint mean for AVX?

How to write and read specific bit of a 32 bit register

Is float slower than double? Does 64 bit program run faster than 32 bit program?

How far do electrons physically move in a single clock cycle in a (theoretical) 4GHz processor?

Problem to store value ​from register into memory, ARM 32 bit

How does a 32 bit processor support 64 bit integers?

Does Java read a single byte in big endian bit order?

Does Zen 4 core have 48 flops per cycle for 32-bit precision fp?

Does Windows supports running a program from memory?

32bit cpu: how much memory can it use?

How to export Image list of 32bit icons into single 32bit bitmap file?

How can I compile a 32 bit program using a makefile