Introduction to Computing Systems: from bits and gates to C and beyond (second edition) - Yale N. Patt, Sanjay J. Patel


Chapter 3 Digital Logic Structures

3.5 The Concept of Memory

3.5.3 A 2²-by-3-Bit Memory

70쪽 Figure 3.22 Reading location 3 in our 2²-by-3-bit memory



먼저

WE가 0일때

location 3에 저장되어있던 101이 나오다가

WE가 1이 되면

location 3에 저장되어있던게 나오는게 아니고

Di[2:0]이 나오잖습니까?


그런데 질문이 있습니다

이 상황에서

다시 WE를 0으로 해주면

원래대로 101이 나오는게 아니라,

WE가 1일 때 기존에 저장되어있던 1,0,1이 각각 Di[2],Di[1],Di[0]로

수정되어버려서

WE가 1에서 0으로 되돌아와도 101이 아니라 계속 Di[2:0]가 나오는것 아닌가요?


65쪽(3.4 Basic Storage Elements 3.4.1 The R-S Latch)에도 그런 말이 있거든요. S이 1일때 0으로만들었다가 다시 1로 되돌리면 처음에저장되어있던걸로 돌아오지 않는다고


그러면, 되돌아오지않으면, 이 장치는 뭐할때 쓰는건가요

처음에 101로 저장해놨어도 WE한번 켰다끄면 영원히 Di[2:0]로 바껴져서 처음에 101저장해놓은게 의미없어지는데


만약 Di[2:0]를 저장하는게 목적이라면 뭐하러 저렇게 쓸데없이 복잡하게 했을까요?

왜냐하면 A[1:0]이 00이든 01이든 10이든 11이든 결국 다 똑같은 Di[2:0]이 되어버리는데 이게 무슨 의미가 있나요?

그냥 아래 그림처럼 register 형식으로 간단하게 하면 되는거 아닌가요?



혹시 A[1:0]이 바뀔때마다 Di[2:0]를 바꿔줄 수 있는건가요? 그러면 의미있을텐데