16kB RAM 만듦



입력으로 8bit 데이터 입력/14bit 주소 입력/1bit 명령 입력을 받고, 

출력으로 해당 주소에 저장된 8bit 값을 출력함

읽기 딜레이는 13f, 쓰기 딜레이는 17f




64B의 용량을 가지는 셀 256개로 구성돼있음

원래 순수 이진법으로 만들고 싶었는데 조합기가 100만개 넘어가면서 감당할 수 없는 랙이 걸리길래 포기함





각 셀은 0-F의 16가지 가상 신호를 저장함

팩토리오에서의 신호는 32bit(4byte) 데이터로 저장되는데

시프트 연산과 논리 연산을 이용하여 이 신호를 쪼개서 1byte 값 4개로 처리하도록 구성함


원리에서 알 수 있듯, 더 많은 종류의 신호를 이용해서 셀당 저장 용량을 더 올릴 수도 있는데, 나는 이쯤에서 그만둠




입출력 속도가 왜 이렇게 느린가요?

-> 이진법 버전에선 읽기 5f 쓰기 14f로 더 빨랐는데, 앞서 언급한대로 규모가 너무 커져서 이걸 압축하는 과정에서 추가적인 오버헤드가 발생해서 느려짐


왜 8bit 값을 저장하나요?

-> 8bit를 1word로 하는 아키텍처를 구성하고 있음


왜 14bit 주소를 쓰나요?

-> 램 슬롯을 여러 개 둬서 확장할 수 있는 구조로 만들 거고, 그 최소 단위인 램카드 한 장의 용량이 16kB인 것




이제 ISA 설계하러 가야지