Modern computers are tightly run ships. The vast majority of components are run on a clock, and those clocks can tick billions of times a second. The most tightly controlled piece of hardware in a computer, though, is the RAM. There are dozens of primary, secondary, and tertiary timings used to configure precisely how fast each stick of RAM can be. While these timings define the performance of RAM, they don’t control how it works, just how quickly.
One of the critical parts of using RAM is RAS. RAS is short for Row Access Strobe or Row Access Select. In the days of Asynchronous DRAM, RAS was a strobe. However, with modern Synchronous DRAM, that is no longer the case; the name is still generally used as a holdover.
RAS is an electrical connection between the memory controller and the RAM chips. It is left high by default. When RAS is brought low, this indicates that the address on the address pins is a row address. The RAM then starts the process of opening the defined row. RAS must then stay low until the row can be closed. This is after data appears on the data pins.
Timings Related to RAS
There are many timings related to RAS. The most basic is tRAS which defines the minimum number of memory clock cycles that RAS must be held low. This is typically the fourth number if a set of RAM timings are presented without labels. tRCD is another timing that defines the RAS to CAS delay. This is the number of memory clock cycles that need to pass between RAS being pulled low to instruct the RAM to take a row address and CAS being pulled low to instruct the RAM to take a column address. Combined, these two addresses specify a memory address, but opening the row must complete before a column address can be specified.
tRC is the Row cycle time. That is the minimum number of memory clock cycles between one row being opened and another row being opened. This is a combination of the time that RAS must be held low, and the time it must be held high to precharge after a row has been closed. tRP is the RAS precharge time, defining how long RAS must be high before it can be brought low again to open another row.
What Functions Are RAS Used For?
RAS is used for every RAM operation. A row and column address must be specified to read any data from RAM. The falling edge of RAS instructs the RAM to check the address pins to find out which row to open. This process is the same for writing operations.
The memory cells that make up RAM need to refresh their charge as it leaks away regularly. This is called refreshing. A refresh cycle is run to ensure that every cell is refreshed before any data loss. Entire rows of cells are refreshed at once by opening and closing them again. The read or write operation, therefore, refreshes a row meaning it can be skipped for that cycle. Read and write operations, however, can not be relied upon to hit every row regularly enough, so specific refresh operations are required.
A Refreshing Approach
There are two main approaches to performing a refresh; both require using RAS. The first is RAS Only Refresh or ROR. This involves pulling RAS low and specifying the row to be refreshed. No further actions are taken, and the row is closed as soon as it can be ready for the next operation.
The second approach is the CAS Before RAS refresh or CBR. This pulls CAS low, then RAS low, but never specifies any address on the address pins. Under normal operations, RAS must always be pulled low first, which is a distinct operation. It relies upon the RAM to keep a counter of which rows have been refreshed and which ones still need to be refreshed.
As no row is specified a row specified by the counter is opened and then incremented by one so that the next row is opened the next time. CBR has a slight power efficiency advantage over ROR as no power is needed to specify a row address. CBR, however, may offer less opportunity for cell-by-cell charge decay awareness allowances, though this is not currently implemented at all, making that a purely theoretical downside.
RAS stands for Row Address Strobe. It may also be called Row Address Select, as the electrical signal is no longer a strobe. When RAS is brought low, a row address is picked up from the address pins. This is used to open a row, which stays open as long as RAS is held low. There is a minimum amount of time that RAS must be kept low, defined as tRAS.
There is also a minimum amount of time that RAS must be held high afterward, tRP. Combined, these two timings make up the RAS Cycle time, tRC. This isn’t a hard limit but a soft one that ensures enough time for rows to properly open and for pre-charging to complete once the row is closed again.