By: Marcus (m.delete@this.bitsnbites.eu), February 23, 2020 10:24 am
Room: Moderated Discussions
Björn R. Björnsson (bjorn.ragnar.delete@this.gmail.com) on February 23, 2020 9:40 am wrote:
> Marcus (m.delete@this.bitsnbites.eu) on February 23, 2020 2:50 am wrote:
> >
> > I have always wondered how the instruction buffers in the Cray 1 worked. IIRC
> > the Cray used 16-bit instruction words and had an instruction buffer of 16-64
> > words or so, but I don't know what kind of update/eviction policy it used.
> >
>
> From the Cray-1 Hardware Reference Manual (http://ed-thelen.org/comp-hist/CRAY-1-HardRefMan/CRAY-1-HRM.html#p3-32):
>
> "There are four instruction buffers in the CRAY-1, each of which holds 64
> consecutive 16-bit instruction parcels (figure 3-7). Instruction parcels are
> held in the buffers prior to being delivered to the NIP or LIP registers.
>
> The beginning instruction parcel in a buffer always has a parcel address that is an
> even multiple of 64. This allows the entire range of addresses for instructions in a
> buffer to be defined by the high-order 16 bits of the beginning parcel address. For
> each buffer, there is a 16-bit beginning address register that contains this value."
>
> Instructions for execution could only come from one of the instruction buffers. If the instruction
> was not present in one of the instruction buffers a 2-bit counter would be increment to select
> which of the four buffers to load with the memory block containing the instruction.
>
Yes, I just found the manual and the section on instruction buffers. So it seems that they had something very similar to a modern instruction cache, though with a FIFO replacement policy instead of LRU, and only four cache lines in total.
> Marcus (m.delete@this.bitsnbites.eu) on February 23, 2020 2:50 am wrote:
> >
> > I have always wondered how the instruction buffers in the Cray 1 worked. IIRC
> > the Cray used 16-bit instruction words and had an instruction buffer of 16-64
> > words or so, but I don't know what kind of update/eviction policy it used.
> >
>
> From the Cray-1 Hardware Reference Manual (http://ed-thelen.org/comp-hist/CRAY-1-HardRefMan/CRAY-1-HRM.html#p3-32):
>
> "There are four instruction buffers in the CRAY-1, each of which holds 64
> consecutive 16-bit instruction parcels (figure 3-7). Instruction parcels are
> held in the buffers prior to being delivered to the NIP or LIP registers.
>
> The beginning instruction parcel in a buffer always has a parcel address that is an
> even multiple of 64. This allows the entire range of addresses for instructions in a
> buffer to be defined by the high-order 16 bits of the beginning parcel address. For
> each buffer, there is a 16-bit beginning address register that contains this value."
>
> Instructions for execution could only come from one of the instruction buffers. If the instruction
> was not present in one of the instruction buffers a 2-bit counter would be increment to select
> which of the four buffers to load with the memory block containing the instruction.
>
Yes, I just found the manual and the section on instruction buffers. So it seems that they had something very similar to a modern instruction cache, though with a FIFO replacement policy instead of LRU, and only four cache lines in total.
Topic | Posted By | Date |
---|---|---|
Has there ever been a CPU with ... | Moritz | 2020/02/21 07:11 AM |
Has there ever been a CPU with ... | hobold | 2020/02/21 07:33 AM |
Has there ever been a CPU with ... | Adrian | 2020/02/21 09:10 AM |
Has there ever been a CPU with ... | Lyra Heartstrings | 2020/02/21 01:45 PM |
locked i-cache | Moritz | 2020/02/21 09:32 AM |
locked i-cache | Wilco | 2020/02/21 10:33 AM |
Has there ever been a CPU with ... | blaine | 2020/02/21 12:39 PM |
Has there ever been a CPU with ... | Gabriele Svelto | 2020/02/21 10:11 AM |
Atari Jaguar | incorrector | 2020/02/22 05:40 AM |
Super-FX & THX, all | Moritz | 2020/02/22 10:40 AM |
Has there ever been a CPU with ... | Tim McCaffrey | 2020/02/21 10:41 AM |
Instruction Buffers | Rob Thorpe | 2020/02/22 07:37 PM |
Instruction Buffers | Marcus | 2020/02/23 02:50 AM |
Instruction Buffers - Cray 1 | Björn R. Björnsson | 2020/02/23 09:40 AM |
Instruction Buffers - Cray 1 | Marcus | 2020/02/23 10:24 AM |
Instruction Buffers - Cray 1 | Björn R. Björnsson | 2020/02/23 11:25 AM |
Has there ever been a CPU with ... | Mark Roulo | 2020/02/21 11:57 AM |
before I-cache | Moritz | 2020/02/21 03:46 PM |
before I-cache | Mark Roulo | 2020/02/21 04:03 PM |
before I-cache | rwessel | 2020/02/22 12:13 PM |
before I-cache | anonymou5 | 2020/02/22 02:49 PM |
microcode RAM capacity (before I-cache) | hobold | 2020/02/23 02:33 AM |
Has there ever been a CPU with ... | anonymous2 | 2020/02/21 12:21 PM |
Has there ever been a CPU with ... | Jose | 2020/02/21 02:43 PM |
Has there ever been a CPU with ... | Peter Greenhalgh | 2020/02/23 03:20 AM |
Has there ever been a CPU with ... | gallier2 | 2020/02/24 12:28 AM |
Has there ever been a CPU with ... | Etienne | 2020/02/24 05:25 AM |