Addressing Memory (Pt1) - Computerphile
Key Takeaways
Dr 'Heartbleed' Bagley explains how memory bits are addressed without unique wiring, sharing connections instead, in the context of computer architecture and memory management.
Full Transcript
so in our previous video on how memory worked we got to the point from storing one bit of information that we could set or reset it to the flip-flop where we could store a bit of information and then we arranged four of them together in parallel so we could store four bits of information so what we did we had four inputs DN to D3 which gave us our input and four outputs Q to Q3 which gave us our output and we connected for each of the flip-flops the clock input together so that when we strob this input it stored all the information on the data inputs and presented it out at the output this has still only allowed us to store one piece of information it was a bigger piece we could store here a number between not and 15 or if we use two's complement between minus 8 and 7 but it was still only one piece of information so we're going to look at now is how we can arrange flip-flops so we can store more than one piece of information so actually if you're implementing a membership like this one which which is a 8K by 8bit memory chip you wouldn't use flipflops as we've seen them before you'd actually arrange about six transistors to store each bit just so that you can fit more onto the actual silicon if you put flipflops as we design them on they take up more space also we're not going to consider like this is an 8 bit wide bit of memory or bite wide memory we'll still consider one bit so we're only going to store one bit of information but we're going to store multiple different bits if you did want to store eight bits of information you could just have eight chips one for each bit that you wanted to store so I'm just going to use the flip-flop symbol that we had before to represent it so we' got our data input which we'll call D we' got our output Q we've also got the inverted Q output and we have our clock input as well that we can use to tell it to store it so whatever is on the input is stored in the flip problem goes to the output when we take this low and then take it high again or vice versa depending on how it's actually built now we want to store more than one bit of information so what I'm going to do is I'm going to store two bits of information so I have another flip-flop exactly the same so now we have two bits of information now there's several things we need to do we want to have one input to our system so we have one data bit that we're going to store and we want to be able to choose whether we store it in this flip-flop or in that flipflop well the first thing we need is some way of saying which flipflops value we're actually interested in storing the CPU refers to every single memory location by a unique identifier but rather than having a name like we get in the programming language the computer uses a binary number to refer to each memory location this is what we would call the address so in this case I'm going to say this is at address zero and this one is at address one so now I want to be able to access either this one or this one well first thing I'm going to do is I'm going to have a data input which I'm going to call D in here and that's where we're going to put our signal now if we think about how flip-flop Works they only change the value they store when we strobe the clock input so actually we can connect the input directly to the input of the first flip-flop and we can also connect it directly to the input of the second flip-flop like so so how do we choose which one we want to St in well we could have in this case two strobe lines and just strobe the right one well that would work fine for two bits and it wouldn't be too bad if we had four flip-flops but if you think about it if you've got 64 kilobits of memory that's 65,536 different wires and so it gets unmanageable when you get to high numbers so what we do is we say well actually we're going to have an input which we'll call a in the address input and if this is zero then we're going to refer to this one and if this contains one we're going to refer to this one we'll also have a signal W which we'll use to say we want to write whatever bit is in D in to whichever flip-flop is specified by a in so what we want to do is to be able to strobe the input to the zero flip-flops clock pin when a in contains zero and W is strobed or strobe the input on one flip-flop when a in contains one and W is strob so we need to connect via digital logic again these inputs to the clock input of flip zero or the clock input of flip-flop one and to do that we use our old friend the and gate again going to start with flip-flop one because it's the simpler one to think about how we do this we want this clock input to be strobed when w is strobed and a in contains a one and so the easiest way to do that if remember our and Gates and you can look back at some of the videos on number file if you forgotten about them up here this is a and gate so if we put an and gate in here we draw that like so now if we think about an and gate again it's got two inputs A and B and an output which again we'll use Q so if we look here we see that whenever a is one the output matches B so when a is one and B is zero the output is zero when a is one and B is one the output is one so we can use this fact of these values here in our circuit here we want clock to be whatever the value of w is which we've connected to input B on the hand gate whenever the input a in is one so we can just connect that line directly in like that and so now whenever we strobe W the clock input on flip-flop one will only be strobed if a in contains one or the address one now how do we do the same for flip-flop zero well we want the same thing to happen so I should bring my wires down here so so what we need to do now is work out what are going to be the right inputs for A and B on this handgate now the input for B is easy because it's exactly the same as this one here the W signal the right signal the same we want to write it we just bring this down and connect it up but we need this thing to be one whenever a in is zero so the way we do that again remembering in digital logic is that we use a simple notot gate like this which just inverts it so when the input to the not gate is zero the output is one when the input to the not gate is one the output is zero so we can connect this in like so and so now what we've got said up is that we've got three inputs W it says when we want to write something to our flipflops D in which contains the value we want to write and a in which tells us whether we want to write to flipflop zero or flip-flop one depending on the value of zero or one in a in we either store the value in that one or we store it in that one and of course you can expand this up to complicated draid but if you wanted to store say four you'd have two a inputs so you have a Zer which would contain Bit Zero of your binary input and you'd have a one which would contain bit one of course remember your binary inputs will then be A1 and a z and so you'd be able to refer to 0 0 which will give you location 0 again 01 which will give you address one 1 0 which would give you address two and one one which would give you address three and all we need to do is build up a more complicated circuit which combined a z and A1 or not a z and not A1 with the w signal to connect to each of these flip flops so that's how we would do the writing to one we can choose whichever FL flop we want by the address and then we can strobe the W thing to write into that one or that one but what about reading how do we combine the two outputs from our flip-flops into a single the arm system in the first Archimedes would run reliably well above 100° C said way this is just the half adder we want a binary full adder
Original Description
Each BIT in memory doesn't have it's own unique wiring, they share connections - Dr 'Heartbleed' Bagley explains how we address them.
Binary: Plusses & Minuses (Why We Use Two's Complement): http://youtu.be/lKTsv6iVxV4
Flip Flops, Latches & Memory Details: http://youtu.be/-Ecf7lb4aZ0
Domino Addition – Numberphile: http://youtu.be/lNuPy-r1GuQ
Computer Vision Playlist: http://www.youtube.com/playlist?list=PLzH6n4zXuckpbNdFO2WW78evpMBqgqyp8
Memory Recall - COMING SOON
Professor Steve Furber on the ARM chip: COMING SOON, Subscribe for Updates!
Correction: In the graphic at 7min:30secs, a-0 & a-1 are incorrectly labelled a-1 & a-2
http://www.facebook.com/computerphile
https://twitter.com/computer_phile
This video was filmed and edited by Sean Riley.
Computer Science at the University of Nottingham: http://bit.ly/nottscomputer
Computerphile is a sister project to Brady Haran's Numberphile. More at http://www.bradyharan.com
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Computerphile · Computerphile · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Follow the Cookie Trail - Computerphile
Computerphile
EXTRA BITS - Follow the Cookie Trail - Computerphile
Computerphile
Musical Floppy Drives - Computerphile
Computerphile
The Hair Algorithm - Computerphile
Computerphile
Getting Sorted & Big O Notation - Computerphile
Computerphile
Quick Sort - Computerphile
Computerphile
Hyper History and Cyber War - Computerphile
Computerphile
Entropy in Compression - Computerphile
Computerphile
Original Elite on the BBC B - Computerphile
Computerphile
IP Addresses and the Internet - Computerphile
Computerphile
A Career in Video Games - Computerphile
Computerphile
Error Detection and Flipping the Bits - Computerphile
Computerphile
Programming BASIC and Sorting - Computerphile
Computerphile
Birthplace of the World Wide Web - Computerphile
Computerphile
Punch Card Programming - Computerphile
Computerphile
Programming Paradigms - Computerphile
Computerphile
CERN Computing Centre (and mouse farm) - Computerphile
Computerphile
Error Correction - Computerphile
Computerphile
Home-Made Code - Computerphile
Computerphile
Security of Data on Disk - Computerphile
Computerphile
Gesture Controls - Computerphile
Computerphile
How Intelligent is Artificial Intelligence? - Computerphile
Computerphile
Encryption and Security Agencies - Computerphile
Computerphile
Virtual Machines Power the Cloud - Computerphile
Computerphile
Hacking Websites with SQL Injection - Computerphile
Computerphile
How Huffman Trees Work - Computerphile
Computerphile
Cracking Websites with Cross Site Scripting - Computerphile
Computerphile
Cloud Computing (Cloudy with a Chance of Pizza) - Computerphile
Computerphile
Texting Cabbage with a Recorder - Computerphile
Computerphile
Hashing Algorithms and Security - Computerphile
Computerphile
How YouTube Works - Computerphile
Computerphile
How NOT to Store Passwords! - Computerphile
Computerphile
A New Golden Age of Video Games - Computerphile
Computerphile
A Universe of Triangles - Computerphile
Computerphile
Cross Site Request Forgery - Computerphile
Computerphile
The True Power of the Matrix (Transformations in Graphics) - Computerphile
Computerphile
The Great 202 Jailbreak - Computerphile
Computerphile
EXTRA BITS - Printing and Typesetting History - Computerphile
Computerphile
Triangles to Pixels - Computerphile
Computerphile
The Problem with Time & Timezones - Computerphile
Computerphile
The Visibility Problem - Computerphile
Computerphile
Lights and Shadows in Graphics - Computerphile
Computerphile
The Penguin Barcode - Computerphile
Computerphile
Typesetters in the '80s - Computerphile
Computerphile
The Font Magicians - Computerphile
Computerphile
The Little Mac with the Big Bite - Computerphile
Computerphile
EXTRA BITS - More on the Original Mac at 30 - Computerphile
Computerphile
XP to Ubuntu with an 8yr old Hacktop - Computerphile
Computerphile
EXTRA BITS - Hacktop Real-Time Boot Comparison - Computerphile
Computerphile
EXTRA BITS - Making a Bootable USB in Linux - Computerphile
Computerphile
EXTRA BITS - Installing Ubuntu Permanently - Computerphile
Computerphile
The Dawn of Desktop Publishing - Computerphile
Computerphile
What is Bootstrapping? - Computerphile
Computerphile
Reverse Polish Notation and The Stack - Computerphile
Computerphile
Home-Made Z80 Retro Computer - Computerphile
Computerphile
Should Everybody Learn to Code? - Computerphile
Computerphile
Programming in PostScript - Computerphile
Computerphile
Heartbleed, Running the Code - Computerphile
Computerphile
YouTube's Secret Algorithm - Computerphile
Computerphile
YouTube Search & Discovery - Computerphile
Computerphile
More on: Systems Design Basics
View skill →Related Reads
📰
📰
📰
📰
PANet Paper Walkthrough: When Feature Pyramids Go Bottom-Up
Towards Data Science
CCTV Action Recognition: Comprehensive Fine-Tuning & Real-Time Deployment Guide
Medium · Python
I built a background remover that keeps the fine hair edges
Dev.to · KunStudio
I Built a Python Package to Solve My Own CV Frustration — 7K Downloads in a Week
Medium · Machine Learning
🎓
Tutor Explanation
DeepCamp AI