A full school year with virtual classes, virtual office hours, virtual collaboration, and virtual meetings seems insane to think about. Since this school year will always be remembered for its peculiarity, I wanted to go through a bunch of interesting yet academic-related things I learned during this school year. 1. How a DRAM cell works.One of the most interesting takeaways from this year was how computer memory operations actually worked. DRAM stands for Dynamic Random Access Memory. It is a type of random access memory. What makes random access memory great is the ability to fetch/write to any 'random' memory location at one time. If the computer needs to fetch some data from memory, it can access it by simply using the instruction's physical address (the address that tells the computer where the instruction is in memory). Dynamic RAM is known as 'dynamic' due to the nature of a DRAM 'cell'. Each DRAM 'cell' stores a bit of data, by utilizing 1 transistor and 1 capacitor. The diagram below shows what a DRAM cell looks like. The bit being stored in the cell depends on the presence of charge in the capacitor. A capacitor is essentially an electrical component that is made up of two metal plates separated by a dielectric (an insulator that can be polarized). A capacitor has some charge if one plate gains positive charge, and the other plate builds up negative charge. If the capacitor in the cell is charged, then the bit stored is a '1'. If the capacitor has no charge, the bit stored is a '0'. So how does this all work? How does a read/write operation to memory happen when each bit is stored in the configuration above? There is a pass transistor and a capacitor in each cell. The transistor essentially acts as a switch; if the word line is ON, the transistor connects the capacitor to the bit line. If the word line is OFF, the capacitor is not connected to the bit line. When a memory write occurs, the bit line is set to the bit to be stored. Then, the word line is also asserted. If the bit being stored is a '1', the bit line is turned ON, and the pass transistor connects the capacitor to the bit line, which charges the capacitor. Once the capacitor is fully charged, a '1' is stored in the DRAM cell. If the bit line is '0', there is no charge in the capacitor and a '0' is stored. When a memory read occurs, the bit line is set to half of the 'ON' voltage. There is a set voltage (Vcc) that represents a '1' ON voltage. By setting the bit line to half of the voltage, we are performing a reading operation (trying to read the charge in the capacitor). After the bit line is set to Vcc/2, and the word line is asserted, the magic happens. If the capacitor is charged, the capacitor will start to discharge (since there is a potential difference between the capacitor voltage and the bit line voltage). If the capacitor is not charged, the capacitor will start to charge, using the current supplied from the bit line. In both of these cases, the bit line's voltage will slightly change by a small amount below or above the Vcc/2. A special component called a sense amplifier senses these changes, and reads the bit value depending on the changes. If there is a positive change, the value is a '1', else value is a '0'. However, after reading the values, the capacitor's charge changes--therefore, the read operation is a destructive read. Therefore, we need a refresh circuit to refresh and pre-charge the capacitors, to keep the original values. This is why DRAM is a dynamic RAM--it requires these refreshes. A DRAM array is made up of a bunch of DRAM cells put together, which then make up DRAM banks. This makes up DRAM chips, with then make up ranks. A DIMM module consists of a bunch of DRAM chips. DRAM is useful because it provides more capacity, at a lower cost. I didn't at all know about how memory looks like at a micro transistor level of things, so this was an eye-opening lesson for me. 2. Dijkstra's algorithm...!One of the coolest theorems used in many real life applications today is the Dijkstra's theorem. The gist of the algorithm has to do with finding the shortest path between two nodes/locations in a given graph. A very interesting application of this algorithm is finding the shortest route in a given network. For instance, packet routing from one computer to the destination computer involves finding the shortest path between these two 'nodes'. Dijkstra's algorithm is prevalent in many applications today. 3. Working backwardsWorking backwards is a very useful technique that can be used for many problems. I think this is a really important technique! Congrads to the class of 2021! Thank you! Aarushi
0 Comments
Leave a Reply. |
Archives
May 2021
Topics
All
|