CADRマシンの回路図をたよりに中で使われているメモリについて調べた。
Retrocomputing - MIT CADR Lisp Machines
@natsutanさんのブロック図を参照してください。
制御パス
データパス
以下はPROMだけど組み合わせ回路で実現:
part_32x32prom_maskright i_MSKR A[4:0] D[31:0]
part_32x32prom_maskleft i_MSKL A[4:0] D[31:0]
part_32x8prom i_DMASK A[4:0] D[7:0]
part_512x49prom i_PROM0 A[8:0] D[48:0]
このうち512ワードのi_PROM0はデータbit46が欠けている。元々のPROMには[48:47,45:0]の48bitが割り付けられている。74S472×12個。
以下はRAM、caddr.vでのソースではメモリ上のパリティはすでに取り除いてある:
part_32x19ram i_SPC A[4:0] D[18:0] SPC STACK
元は32x2bit 82S21 ラッチ×10個(パリティ付き)
part_32x32ram i_MMEM A[4:0] D[31:0] B-MEMORY(M-MEMORY)
元は32x2bit 82S21 ラッチ×17個(パリティ付き)
part_2kx5ram i_VMEM0 A[10:0] D[4:0] VMAP STAGE0
元はRAM 1k×1bit 93425A×12個
part_1kx24ram i_VMEM1_2 A[9:0] D[23:0] VMAP STAGE1,2
元はRAM 1k×1bit 93425A×25個
part_1kx32ram i_PDL、i_AMEM A[9:0] D[31:0] PDL MEMORY、A-MEMORY
元はRAM 1k×1bit 93425A×33個(パリティ付き)が2セット
part_2kx17ram i_DRAM A[10:0] D[16:0] DISPATCH MEMORY
元はRAM 1k×1bit 93425A×36個
part_16x49ram i_IRAM A[13:0] D[48:0] INSTRUCTION MEMORY
元はRAM 4k×1bit IN2147×196個
部品としてのRAMは3種類。うちラッチと書いたものはパススルーができる?
INSTRUCTION MEMORYがいちばん大きい。次いでDISPATCH MEMORYで、このあたりを外に追い出せばいけるか。VMAP関連についてはSTAGE0,1,2とcaddr.vソースとの対応付けが今のところはっきりしない。(CADRマシンの前身、CONSマシンのブロック図を参照しているのでその違いかもしれない)
SPC STACK、B-MEMORYのみ中身があるものにしてDE0(CycloneIII EP3C16F484C6)ターゲットで合成してみたら約1時間で4,229/15,408LE (27%)だった。まだ行けそうね。
Retrocomputing - MIT CADR Lisp Machines
@natsutanさんのブロック図を参照してください。
制御パス
データパス
以下はPROMだけど組み合わせ回路で実現:
part_32x32prom_maskright i_MSKR A[4:0] D[31:0]
part_32x32prom_maskleft i_MSKL A[4:0] D[31:0]
part_32x8prom i_DMASK A[4:0] D[7:0]
part_512x49prom i_PROM0 A[8:0] D[48:0]
このうち512ワードのi_PROM0はデータbit46が欠けている。元々のPROMには[48:47,45:0]の48bitが割り付けられている。74S472×12個。
以下はRAM、caddr.vでのソースではメモリ上のパリティはすでに取り除いてある:
part_32x19ram i_SPC A[4:0] D[18:0] SPC STACK
元は32x2bit 82S21 ラッチ×10個(パリティ付き)
part_32x32ram i_MMEM A[4:0] D[31:0] B-MEMORY(M-MEMORY)
元は32x2bit 82S21 ラッチ×17個(パリティ付き)
part_2kx5ram i_VMEM0 A[10:0] D[4:0] VMAP STAGE0
元はRAM 1k×1bit 93425A×12個
part_1kx24ram i_VMEM1_2 A[9:0] D[23:0] VMAP STAGE1,2
元はRAM 1k×1bit 93425A×25個
part_1kx32ram i_PDL、i_AMEM A[9:0] D[31:0] PDL MEMORY、A-MEMORY
元はRAM 1k×1bit 93425A×33個(パリティ付き)が2セット
part_2kx17ram i_DRAM A[10:0] D[16:0] DISPATCH MEMORY
元はRAM 1k×1bit 93425A×36個
part_16x49ram i_IRAM A[13:0] D[48:0] INSTRUCTION MEMORY
元はRAM 4k×1bit IN2147×196個
部品としてのRAMは3種類。うちラッチと書いたものはパススルーができる?
INSTRUCTION MEMORYがいちばん大きい。次いでDISPATCH MEMORYで、このあたりを外に追い出せばいけるか。VMAP関連についてはSTAGE0,1,2とcaddr.vソースとの対応付けが今のところはっきりしない。(CADRマシンの前身、CONSマシンのブロック図を参照しているのでその違いかもしれない)
SPC STACK、B-MEMORYのみ中身があるものにしてDE0(CycloneIII EP3C16F484C6)ターゲットで合成してみたら約1時間で4,229/15,408LE (27%)だった。まだ行けそうね。