Harder and and Hiren Hiren Patel. Main Mainmemory memory Outline In this lesson, we will: Describe main memory Define bytes and byte-addressable memory Describe how addresses are stored Describe how bytes are given addresses on various processors Look at some images of memory Main Mainmemory
memory Main memory Main memory stores data to be used by the processor It also stores instructions for programs It is volatile When you shut down your computer, memory is lost Your executing programs must load instructions and data from memory to the processor and store data back in main memory This is all done for you behind the scenes You must never-the-less understand this Main Mainmemory memory Main memory How would you organize memory? A book has pages, and each page has a unique page
number You could reference a specific word by saying: The 4th word on the 7th line of the 372nd page Alex Proimos from Sydney, Australia We need something similar, but simpler for a computer Recall we have years, months, days, hours, minutes and seconds Unix counts time by seconds relative to midnight January 1, 1970 Main Mainmemory memory Main memory Previously we described the computer only thinks in binary Main memory is nothing more than billions or trillions of 0s and 1s You could give each bit a separate address You could then ask for the 32280514913rd bit
Problem: thats a lot of addresses Instead, hardware developers decided to give every 8 bits their own address 8 bits is one byte This is called byte-addressable memory Main Mainmemory memory Byte-addressable memory In byte-addressable memory, each byte has its own unique address The address is a binary number On a 32-bit computer, the addresses are 32 bits long On a 64-bit computer, the addresses are 64 bits long A 32-bit computer can address 232 bytes: 4 GiB A 64-bit computer can address 264 bytes: 16 EiB or ~17 million TiB Not every address may correspond to an actual physical byte
Most computers today do not have 16 EiB of main memory To contrast, a hard drive is block-addressable Every 4 kilobyte block of bytes has its own address Main Mainmemory memory The byte A byte is 8 bits: All possible bytes are shown here: 00000000 00001110 00010000 00011110 00100000 00101110 00110000 00111110 01000000 01001110
You cannot read or write a single bit from main memory If you need just a single bit, you must never-the-less refer to an entry byte in memory If you want to write a single bit to main memory, you must write the entire byte in which it is contained It is very convenient therefore to use multiples of bytes Main Mainmemory memory The byte However, every byte hexadecimal digits: can 0b00000000 0b00101100 0b01000100 0b10001010 0b10110101 0b11101000 0b11111111
be represented 0x00 0x2c 0x44 0x8a 0xb5 0xe8 0xff This is a common means of examining memory by 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010
1011 1100 1101 1110 1111 two 0 1 2 3 4 5 6 7 8 9 a b c d e f Main Mainmemory
memory Addresses Today: Most processors have 64-bit addresses Many microcontrollers have 32-bit addresses Smaller microcontrollers may have 24-bit addresses Each of these are multiples of 8 bits A 64-bit address occupies 8 bytes A 32-bit address occupies 4 bytes A 24-bit address occupies 3 bytes Thus, we may represent a 64-bit address with 16 hexadecimal numbers 32-bit address with 8 hexadecimal numbers
24-bit address with 6 hexadecimal numbers or 16-bit 1 Main Mainmemory memory Addresses Thus, an address on your 64-bit desk- or lap-top computer may look like: 0x0000839d542a8b38 The address of the next byte would be 0x0000839d542a8b39 An address on a 32-bit computer might look like:
0x0e518a93 1 Main Mainmemory memory 1 Addresses If we are showing a block of bytes in memory, each byte will be listed with its address In general, the addresses are not significant What is important is what we store at those addresses If you care: these are the addresses of bytes on a 32-bit processor Main Mainmemory memory
Addresses You can always buy as much memory as the processor can address If you buy 4 GiB of memory for a 32-bit computer, every address is associated with a byte 1 Main Mainmemory memory Addresses The first address is always reserved We will never be able to use or access the byte at 0x00000000 It is at the top of memory 1 Main Mainmemory
memory Addresses On occasion, addresses will be printed without leading zeros, but you should assume they are there: On a 64-bit processor, the address 0x59243d48c is actually 0x000000059243d48c 1 Main Mainmemory memory Naming conventions Main memory is immediately available to the processor Other storage devices are referred to auxiliary memory Data from auxiliary memory must be loaded into main memory prior to being used by the computer Main and auxiliary memory may also be referred to as
Internal and external memory, respectively Primary and secondary memory, respectively 1 Main Mainmemory memory Properties Main memory is almost universally volatile In general, when you shut down a computer, main memory is erased Auxiliary memory is non-volatile Removing a power source to auxiliary memory does not erase the contents E.g., flash drives, magnetic disks, optical discs and magnetic tapes Main memory is often referred to as random access
memory (RAM) Any byte can be accessed in the same amount of time Flash drives are also RAM 1 Main Mainmemory memory Summary Following this lesson, you now Understand that memory is byte addressable Each byte has its own unique integer address Know that the byte is the smallest amount of memory that can be accessed Know that addresses tend to be multiples of bytes in length They are best described as hexadecimal numbers 1 Main Mainmemory memory
References  No references? 1 Main Mainmemory memory Colophon These slides were prepared using the Georgia typeface. Mathematical equations use Times New Roman, and source code is presented using Consolas. The photographs of lilacs in bloom appearing on the title slide and accenting the top of each other slide were taken at the Royal Botanical Gardens on May 27, 2018 by Douglas Wilhelm Harder. Please see https://www.rbg.ca/ for more information. 2 Main Mainmemory memory
Disclaimer These slides are provided for the ECE 150 Fundamentals of Programming course taught at the University of Waterloo. The material in it reflects the authors best judgment in light of the information available to them at the time of preparation. Any reliance on these course slides by any party for any other purpose are the responsibility of such parties. The authors accept no responsibility for damages, if any, suffered by any party as a result of decisions made or actions based on these course slides for any other purpose than that for which it was intended. 2
Pain, swelling, contusions, lacerations and/or abrasions at the site of injury Palpable defect Patella Fractures Radiographs AP/Lateral/Sunrise views Treatment ORIF if ext mechanism is incompetent Non-operative treatment with brace if ext mechanism remains intact Tibia Fractures Proximal Tibia Fractures (Tibial...
Introduction- Layers of TCP/IP (1) TCP/IP is a suite of networking protocols. 4 layers Layering architecture. Link layer (data-link layer) Include device drivers to handle hardware details. Network layer (IP) Handle the movement of packets around the network. Transport layer...
It's Yu Lan here. This is the first one in a series of videos on vector space classification. In this video, I will introduce some basic knowledge about vector space classification. ... Classification for classes that are not mutually exclusive...
Civilizations emerge and develop on fertile river plains in Mesopotamia, Egypt, the Indus Valley, and China. ... The Roman Republic Rome's Geography • Site of Rome chosen for its fertile soil and strategic location • Located on Italian peninsula in...
Flinders Lane cafes and restaurants . Lygon Street (Greek, Italian) Chapel Street (Japanese, Italian) China Town. Box Hill (Chinese, Vietnamese) Glen Waverley (Chinese) Springvale (Vietnamese) Brunswick (Lebanese, Italian) Cafés y Restaurantes
Realism. Reaction to romanticism. Focus on ordinary people. Anti-materialism. Nature is a force beyond man's control. Naturalism. Similar to realism, but a darker view of the world. Universe is unpredictable. Fate is determined by chance - free will is an...
Making a GUI Test-first 9/30/04 Testing 2 Testing a GUI Need to simulate mouse clicks, key presses, human uncertainty GUIs subject to change rapidly Potentially difficult to isolate GUI problems from logic problems TDD'ing a GUI Separate presentation layer from...
It is understood that reading is an interactive process in which the reader also comprehends the text. Marie Clay developed Running Record to record the reader's behavior and analyze the substitutions and self-corrections made while reading. Meaning, Structure, and Visual...
Ready to download the document? Go ahead and hit continue!