12.4 어소시어티브 메모리
- 메모리가 저장하고 있는 정보에 접근하기 위해 주소가 아니라 저장되어 있는 내용 자체를 사용해서 접근하는 메모리장치
- 인자 레지스터와 키 레지스터는 n개의 비트로 이루어져 있다.
- 매치 레지스터는 m개의 비트로 이루어져 있다.
- 매치 레지스터는 모두 0으로 되어 있으나, m개의 비트들이 인자레지스터에 저장되어 있는 것과 같은 값을 가진 word를 찾았을 때 word 위치에 해당하는 값이 1이 된다.
- 키 레지스터에 있는 값이 1이면 인자 레지스터에 있는 값과 메모리의 특정 word의 값이 같은지 비교한다. 0이면 0번에 해당하는 비트 위치는 비교하지 않는 위치로 동작한다.
예)
- m =워드의 수
- 9 = 워드에 포함되는 비트 수
- m개의 워드로 되어 있고, 한 워드가 9비트로 되어있는 메모리다라고 할 수 있다.
- A register는 인자 레지스터에 저장된 것을 의미
- K register는 k 레지스터에 저장된 것을 의미
Associative Memory의 동작
하나의 word에 대한 match 로직
- A_j = Argument, F_ji = Cell ij번째 비트
- j 번째 bit match 조건 (j= 1, 2, …, n)
-
- x_j = A_j F_ij (1 and 1) + A_j ‘ F_ij ‘ (0 and 0)
- A와 F가 같으면 match 에 해당하는 값이 1이 된다.
- 둘다 1이거나 0이면 m에 해당하는 비트를 1이 되게한다.
- Word I(n bits) match 조건 : M_i = x_1 x_2 … x_n
-
- 모든 x의 값이 1이 되는 and 연산을 생각해볼 수 있다.
- K_j에 해당하는 값이 0 이면 A_j와 F_ij는 비교할 필요가 없다.
- K_j에 해당하는 값이 1이면 A_j와 F_ij는 비교된다. 즉 a_j와 F_ij가 비교된다는 것은 식이 만족되는지 확인한다고 볼 수 있다. x_j에 해당하는 식이 맞는지.
- 예)
- A 101 111100
- K 111 000000
- W_2 101 000001
- X 111 111111이 나와야한다.
- M_2 = 1