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 설계하러 가야지
딜레이가 13f 17f라는게 무슨뜻임?
명령 입력 후 결과물이 출력되기까지의 시간
13틱 17틱이라는소린가?
@이파 맞음 다른 게임에서 1프레임을 1f로 표기하는데 아무생각 없이 그대로 썼네
아 프레임의 f구나 근데 딜레이가 생각보다 크네. 파이프라인은 되는 구조인건가?
@이파 고려하지 않고 설계함 아마 안 되지 않을까 싶음 딱히 성능에 중점을 둔 게 아니고 그냥 돌아만 가는 간단한 구조로 만들고 있어서
4바이트를 1바이트로 쪼개는 과정이 있다고는 하지만 10틱이 넘어갈정도는 아닌것 같은데 딜레이가 대부분 어디서 나오는건지는 궁금하네
@이파 RAM을 제외한 다른 부분은 이진법 기반으로 동작해서 변환 과정도 들어감 (쓸 때) 이진수를 1바이트 신호로 변환 → 바이트 신호를 적절한 셀/가상신호/위치에 매핑 → (같은 가상신호를 쓰는 다른 데이터가 간섭받지 않도록 하며)덮어씌우기 (읽을 때) 가상 신호를 인출 → 마스킹을 통해 원하는 데이터만 추출 → 바이트 신호를 이진신호로 변환 → 출력 자질구레한 연산 하나 하나에 1f 2f씩 뺏기다 보니 좀 길어지더라 완전히 최적화된 구조는 아니라 줄이려면 줄일 수 있을 듯?
@EZV 이진신호라는게 8비트를 각각 서로 다른 가상신호8개 사용해서 0또는 1 값만 사용한다는건가? 찐 하드웨어 레벨로 하는건가보네
@이파 On/Off를 표시할 하나의 가상신호를 0/1 값으로 사용함 8비트 신호는 이러한 하나의 가상신호가 흐르는 회선을 8개 쓰는 거
@EZV 아 회선까지 다 따로 ㅋㅋㅋ
요즘하는거... 까지 이해했습니다
아 완벽히 이해못했어. 사실 이해못했음
이거팔아서부자됩시다
엔비디아 게섯거라
이거 조명에 끼우면 색깔놀이 가능?