Gadgetory


All Cool Mind-blowing Gadgets You Love in One Place

What Are Memory Timings? CAS Latency, tRCD, tRP, & tRAS (Pt 1)

2018-07-02
we're going to try and attempt the impossible and break down memory timings one by one this will be over several content pieces we're making a big article push on this the articles will be linked in the description below as always but we also have a video component here which will have some key animations we've made for the memory timings memory timings are incredibly complex it's crazy how complex they get and we spoke with several vendors before taking on this task as Asus told us you need to take your time with this one pretty easy to screw things up so as a general introduction today we're going to over primary timings we're going to provide some animations of how they all work what they do rows and column access and all that stuff also be talking about basic formulas to calculate cycles and things like that and what the numbers mean for each primary timing at a later date and another content piece we plan to go over the secondary and the tertiary timings and just drill down further as we go through this content for RAM and memory timings because they have a huge impact on performance in some instances and there's not a lot of information out there that's condensed in just one area so we're gonna go for that before that this video is brought to you by Thermal Grizzlies high end thermal paste and liquid metal Thermal Grizzlies cryo knot is an affordable high quality thermal compound that doesn't face some of the aging limitations of other pastes on the market cryo knot has a thermal conductivity of 12.5 watts per meter Kelvin focuses on endurance is easy to spread and isn't electrically conductive making it safe to use on GPU dies thermal grizzly also makes conductor not liquid metal which we've used to drop 20 degrees off some temperatures than our dee-lighted test by a tube at the link in the description below first the basics while memory frequency is measured in Hertz or cycles per second the unit from memory timings is just plain cycles to convert clock cycles to a measurement of time requires knowing the frequency of the memory this is listed in megahertz or units of 1 million Hertz 3200 megahertz has a clock frequency of 3.2 billion cycles per second so the time for a cycle to complete should be 1 over 3.2 billion seconds however modern memory is DDR double data rate meaning data is transferred on the rising and falling edge of each clock so advertised frequencies are twice the real clock frequency that's part of why when you set memory to 3200 megahertz in BIOS CPU Z will show 1600 megahertz the time is really 1 over 3.2 billion over 2 seconds here if our example memory has a CL timing of 16 clock cycles this translates to 16 times 1 over 3.2 billion over 2 seconds or point 0 0 0 0 0 0 1 seconds or 10 nanoseconds if we make it easier the equation is 1 over advertised frequency over 2 times timing in cycles equals timing in seconds for a ddr3 1600 kid a CL of 9 translates to 11 point 2 5 nanoseconds actually slower than our previous example latencies have gradually increased over the years with the physical distance that signals have to travel the speed of light is the hard limit here but frequency has increased as well and therefore performance has still improved frequency is very important but it's just one element of performance as with CPUs there are many different timings but they deal with a smallest of commands overall one of them would be when they can be issued or how long it takes to execute how long how many cycles pass before a response is sent back so we have a table here of just the ddr4 commands from Wikipedia which will give you some basics so we can throw that up on the screen the important signals from the top row are act or activate wrasse or row access strobe casts or column access strobes these are no longer strobes it's a side note and w/e or write enable wrasse and castes are often referred to simply as column and row address because they are no longer strobes the terminology is a holdover these are active low signals so they can either be high or low H or L in this column or 1 or 0 together they form a 4-bit code that specifies a command to be executed the signals have changed a bit over the years but for the most part ddr4 has the same list of commands that SDRAM has always had and therefore many of the same timings for some background information on stuff like banks rows and columns there's a venerable 2010 article from an intact that's a good overview of what SDRAM specifically is and how it functions if you're curious about that let's go through a few of these activate who opens up a row of a bank a row must be active for reading and writing data if a row isn't active it is idle and if a row is activated it stays that way until a pre-charge command pre-charge it closes the open row in one or all banks by two separate commands putting them into the idle State data is still stored in idle banks but they must be activated again before reading or writing read and write are self explanatory with these commands an auto pre charge flag can be set to automatically pre charge the row when it's done ZQ calibration compensates for temperature and voltage variation it can be a recurring command but not frequently enough to make the related timings important to us refresh refreshes the charge and memory cells by writing data back in place without changing it DRAM is volatile memory which means that it requires power to store data bits are represented by charges on capacitors which leak over time if they aren't read from or written to we'll discuss this more in the next piece look at the tre Fi and T RFC section for that all banks must be idle or pre charged before a refresh the jeddak or a joint electronic device engineering council and solid-state technology Association is an organization that publishes standards for ddr4 ddr5 SSDs mobile memory SD g DD r6 and more they're responsible for standardizing and defining everything in our article and this video from abbreviations to the entire concept of ddr4 as part of this jeddak publishes tables with baseline timings for different Ram types several of which are saved in SPD memory manufacturers produced strictly Jetix defined varieties of RAM like ddr3 1600 megahertz 1111 11:28 but can make them capable of higher speeds and market them as such for example Corsair sells forty six hundred megahertz memory which as of this writing is a higher speed than jeddak has defined for ddr4 when a newly built system is powered on for the first time the board will check SPD and default to the best set of these jeddak approved slow but safe speeds XMP is an SPD extension its extreme memory profile something that intel has largely pushed here and it's a higher performance spec that's jammed into the leftover space of EEPROM on the memory modules these are conceptually the same thing as JEDEC profiles but their higher performance and they're optimized by the memory manufacturer itself that might be someone like g.skill or Corsair or any number of other memory manufacturers XMP contains settings that memory manufacturers say will probably work and they might not be supported depending on the quality of the CPUs IMC or the motherboard or SOC and other components this is a problem with things like that ever mentioned Corsair forty six hundred megahertz memory where although it can achieve forty six hundred megahertz you're starting to get to a point where you're bending the CPU imc the memory and also you're choosing a very specific motherboard and also you want a high-end CPU core so that you can get all the overclockers right so it's kind of getting into territory where there really no guarantees and there's higher frequency kits can almost be misleading because it's pretty rare that you get the ultra performance you might get somewhere pretty close unless you've really bend everything in the product line so XMP again is an SPD extension for enthusiasts Ram the advertised speeds are usually most easily attained by just simply applying XMP some vendors call these different names which we'll go over momentarily XMP is technically an Intel standard but an extreme memory profile is literally just a list of numbers that can be read into the system from EEPROM so if the board allows it for example some vendors like AMD boards might have rebranded XMP as do CP or EOC P or some of them just straight called XMP even though it's kind of originally was an Intel thing so XMP is a bit redundant in a lot of cases because we'll call it XMP profile which does mean an extreme profile just remember that nobody cares including Intel otherwise they wouldn't have abbreviated Xtreme with an X that's what XMP is though and that's what SPD is neither XMP nor SPD contain every single timing and memory vendors can only do so much tuning a lot of this falls on motherboard makers according to a Kingston representative quote we tune the primary timings CLR CDR P and R ass only the other timings are left alone at jeddaks recommendations likely for the MRC in regards to some specific sub timings we asked about quote since they are not in the SPD or XMP we can't change them even if we need to this lines up with our experiences in the real world impact section of this content even if memory manufacturers wanted to go deeper there's a specific and limited list of SPD entries so when it comes down to it Ram doesn't set its own frequency and timings bios does Ram carries the marketing for what frequency and times it should be able to hit and you can apply an XMP profile redundantly in order to achieve those timings in that frequency easily but the BIOS ultimately dictates how well this works and that's why some boards just straight won't work with different memory cuts even if they're rather modest and their timing goals on Intel boards this element of the BIOS is called the MRC and the MRC is one area where board manufacturers can secure an advantage in their performance so this is where motherboards really differentiate themselves it's not just the vrm or the heatsink or all the different ports on it it's what is their support for memory and with this specific example the sheer variety of ram and the differences between samsung micron and hynek's the three major memory suppliers who actually make the chips that go on the corsair g.skill memory the the amount of difference between them is hideously complex to adjust and people like the Asus team spend a lot of time perfecting their BIOS to try and get them as good as possible with all these different types of kits which is just plug and play and a lot of trial and error so memory and board manufacturers can work together to bake in optimal timings for each kid of memory and most part these are determined if left auto during post where they should remain unchanged unless there are boot failures at which point we start deferring to things like memory training memory training can appear kind of like a dark magic of some kind basically with memory training what you're doing is forcing boot failures until you can finally get into the system it might be mostly stable you might have some memory errors with really intense applications but the idea is that you are hitting a retry button or just literally letting the motherboard cycle and a lot of the time if you just leave it alone the motherboard will eventually cycle into a successful boot for timings even if it looks like it's failed the first maybe three to five times we've had instances with the retry button with high memory overclocks for 3dmark record testing we've had instances where just hitting that retry button for five minutes well sometimes eventually kick it into a boot and that's because it's sitting there retrying different timings over and over until it finds one that is stable for the motherboard and what's actually happening is the IMC will try a variety of different settings in an attempt to stabilize the system not all of them are timings and that's how to each boot of the system it's an important point for even non overclockers because again if the memory seems unstable just cycle it a few times and see what happens maybe it'll work and you'll get lucky retry buttons are an excellent tool for making this work different kits have different jeddaks standards so different sub timings get loaded this is an issue we've run into before we had two kits identical in frequency and capacity but with different latencies however the 16 18 18 36 Corsair kit somehow managed to outperform our 14 14 14 34 g.skill kit and tests after discussing this with both manufacturers it turned out that Corsair sticks were dual sided with groups of 512 megabyte x 8 ICS while G skills were single sided with groups of 1 gigabyte by 8 ICS 512 by 8 is an older style so it actually has tighter sub timings defined by JEDEC see the what our timing section of our article linked below the biggest culprit in this case was T RFC or refresh cycle time we'll cover the full definition of this in part two but for now the important thing to know is that the value set by JEDEC for coursers type of kit was 416 and it was 564 G skills when we adjusted G skills down to the same TR FC value that courser had with no further adjustments the G skill kit pulled ahead in performance and remained stable as shown in our ashes of the singularity benchmark results that we can put on the screen or have had on the screen this is an extreme case but it shows of both the value of experimenting with sub timings and the frustrations of benchmarking memory if the ACS board happened to have a set of optimized timing specifically for this G skill kit it would have performed better than the coarser kit from the get-go but the aces board just didn't have this specific kit optimized with all that out of the way it's time to talk about the primary timings that you see listed everywhere there on the product boxes the sticks of RAM themselves and their standardized so timings will be listed in a set format its TCL TR CD TRP and tear ass with CR sometimes listed as well going through the primary timings first we have cache latency TCL or T casts as it is commonly known Wikipedia describes this as follows the number of cycles between sending a column address to the memory and the beginning of the data in response this is the number of cycles it takes to read the first bit of memory from a dram with the correct row already open unlike the other numbers this is not a maximum but an exact number that must be agreed on between the memory controller and the memory our explanation or expansion on this is as follows cast latency is the most widely talked about and compared memory timing these CL timing is an exact number the base time that it takes to get a response from memory in the best possible scenario described previously is referred to as a page hit the other primary ty means other than command rate are minimums it's important to remember that although we'll be talking about how these times relate to reading data from memory that's just one thing that they affect the next one is Rast to cast delay or TRC d in BIOS Wikipedia states the following the minimum number of clock cycles required between opening a row of memory and accessing columns within it would be TR CD the time to read the first bit of memory from a dram without an active row is TR CD plus CL hour version to expand upon this is that wrasse to Cass is one potential delay to reads and writes TR CD is the number of clock cycles it takes to open a row and access a column if a request for data is made when there are no rows open referred to as a page miss it will take at least TR CD plus CL number of clock cycles for the CPU to receive the first bit of data in response the next one is rope recharge time or TRP with PDS as quotes the minimum number of clock cycles required between issuing the pre-charge command and opening the next row the time to read the first bit of memory from a dram but with the wrong row open is TRP plus TR CD plus CL and our version expands in this way if the wrong Row is open a page miss it needs to be closed or pre charged then the next needs to be opened and then the column within the row needs to be accessed this therefore takes TRP plus TR CD plus CL time to complete row active time as our next item or tear ass wikipedia says the minimum number of clock cycles required between a row active command and issuing a pre charge command is row active time this is the time needed to internally refresh the row and overlaps with TR c d and SDRAM modules it is simply TR CD plus CL otherwise approximately equal to TR CD plus two times CL our expansion on this is that it's also known as active to pre charge delay or minimum at wrasse active time the first equation for SDRAM is the relevant one here but it should be more than that we've seen multiple different true ways to calculate T wrasse but given the complexity of memory operations good old trial and error remains the easiest for example we somehow booted with memory at sixteen sixteen sixteen twenty six and that doesn't make sense by anyone's rules if you were to check forums online but it worked command rate is the last one it's known as CR or CMD CB CT CPD all kinds of things and for AMD it's defined as the amount of time in cycles between when a dram chip is selected and a command is executed to TCR or to T command rate can be very beneficial for stability with high memory clocks or for a four dimm configuration it's also known as the command period this will either be one T or two T on modern memory with one T being faster despite the unique T notation this is measured in clock cycles like the other timings there's generally a very small performance Delta between the two options that's it for the ultra basics this is an extremely hard topic to boil down part of the problem we run into even just researching this is that as you find definitions for different aspects of memory you almost need more definitions just to understand the definitions so it's very difficult to boil it down at the end of the day the primary timings are pretty straightforward and simple and what they do see the previous animation for an explanation of that it's just that once you really start getting into things like secondary and tertiary the trouble is there's a lot of play between the timings how they interact with each other how one being higher might mean another one can't be certain values and things like that and we'll try and boil these down further check back for part two where we will explore at least the secondary timings if not tertiary as well and then we'll define the rest later if we have to but that should get you started on timings and on memory it's a really interesting subject that's important and up until the last year or so has been pretty uninteresting for most people but because of risings very peculiar early interactions with memory with the first launch of Rison it kind of memory timing started to get some attention and then you start looking at Intel overclocking you can push the CPU reasonably to 5 gigahertz in a lot of cases but get stuck on memory performance so timings are coming back into interest I think for the community and it's a good time to go through this stuff as always you can go to store documents access net to support us directly you can buy this shirt which is currently on presale to limited run once they're gone they're gone or not going to make more or pick up one of our mod mats if you want a 4x2 modding service for your next build and if you want something a bit on the lower end you get a patreon.com/scishow gamers nexus to join our discord subscribe for more to get part two thank you for watching I'll see you all next time
We are a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Amazon.com and affiliated sites.