Why did the Cray-1 have 8 parity bits per word?How did Mode 3 on the Amstrad CPC work?What computer first...
What is this waxed root vegetable?
What type of investment is best suited for a 1-year investment on a down payment?
Can a space-faring robot still function over a billion years?
Did Amazon pay $0 in taxes last year?
Canadian citizen, on US no-fly list. What can I do in order to be allowed on flights which go through US airspace?
For a 1-action spell, do I need to take a turn to ready the spell before I can cast it, or can I cast it immediately?
Change only a specific Parameter on a function
Should we avoid writing fiction about historical events without extensive research?
Skis versus snow shoes - when to choose which for travelling the backcountry?
Levi-Civita symbol: 3D matrix
How to kill a localhost:8080
It took me a lot of time to make this, pls like. (YouTube Comments #1)
A bug in Excel? Conditional formatting for marking duplicates also highlights unique value
I can't die. Who am I?
What should the omniscient narrator call a character?
How can I handle a player who pre-plans arguments about my rulings on RAW?
Calculating Hyperbolic Sin faster than using a standard power series
Plagiarism of code by other PhD student
Pure Functions: Does "No Side Effects" Imply "Always Same Output, Given Same Input"?
Was it really inappropriate to write a pull request for the company I interviewed with?
In Adventurer's League, is it possible to keep the Ring of Winter if you manage to acquire it in the Tomb of Annihilation adventure?
Fake utcnow for the pytest
What is a term for a function that when called repeatedly, has the same effect as calling once?
"Lived a lion" or "there lived a lion"
Why did the Cray-1 have 8 parity bits per word?
How did Mode 3 on the Amstrad CPC work?What computer first facilitated multi-precision arithmetic80s DRAM chips: one per bit of data bus width?Z80 and video chip contending for random accessWere there any LSI-11 like home computers outside of Russia?Repurposing the parity bitLast computer not to use octets / 8-bit bytesRAM for Socket 7 Motherboard - 64MB sticks appearing as 16MBAmiga floppy disks and GCR vs MFMWhy are RAM chips 1 or 4 bits wide?
According to https://en.wikipedia.org/wiki/Cray-1
The Cray-1 was built as a 64-bit system, a departure from the 7600/6600, which were 60-bit machines (a change was also planned for the 8600). Addressing was 24-bit, with a maximum of 1,048,576 64-bit words (1 megaword) of main memory, where each word also had 8 parity bits for a total of 72 bits per word.[10] There were 64 data bits and 8 check bits.
It seems to me by the nature of parity, it should suffice to have one bit of overhead per word, rather than eight. I can understand on something like an 8088/87, you might be stuck with 1/8 because the memory system deals in eight bits at a time, but why is it that way on a 64-bit machine?
hardware memory cray
add a comment |
According to https://en.wikipedia.org/wiki/Cray-1
The Cray-1 was built as a 64-bit system, a departure from the 7600/6600, which were 60-bit machines (a change was also planned for the 8600). Addressing was 24-bit, with a maximum of 1,048,576 64-bit words (1 megaword) of main memory, where each word also had 8 parity bits for a total of 72 bits per word.[10] There were 64 data bits and 8 check bits.
It seems to me by the nature of parity, it should suffice to have one bit of overhead per word, rather than eight. I can understand on something like an 8088/87, you might be stuck with 1/8 because the memory system deals in eight bits at a time, but why is it that way on a 64-bit machine?
hardware memory cray
add a comment |
According to https://en.wikipedia.org/wiki/Cray-1
The Cray-1 was built as a 64-bit system, a departure from the 7600/6600, which were 60-bit machines (a change was also planned for the 8600). Addressing was 24-bit, with a maximum of 1,048,576 64-bit words (1 megaword) of main memory, where each word also had 8 parity bits for a total of 72 bits per word.[10] There were 64 data bits and 8 check bits.
It seems to me by the nature of parity, it should suffice to have one bit of overhead per word, rather than eight. I can understand on something like an 8088/87, you might be stuck with 1/8 because the memory system deals in eight bits at a time, but why is it that way on a 64-bit machine?
hardware memory cray
According to https://en.wikipedia.org/wiki/Cray-1
The Cray-1 was built as a 64-bit system, a departure from the 7600/6600, which were 60-bit machines (a change was also planned for the 8600). Addressing was 24-bit, with a maximum of 1,048,576 64-bit words (1 megaword) of main memory, where each word also had 8 parity bits for a total of 72 bits per word.[10] There were 64 data bits and 8 check bits.
It seems to me by the nature of parity, it should suffice to have one bit of overhead per word, rather than eight. I can understand on something like an 8088/87, you might be stuck with 1/8 because the memory system deals in eight bits at a time, but why is it that way on a 64-bit machine?
hardware memory cray
hardware memory cray
asked 2 hours ago
rwallacerwallace
9,472446139
9,472446139
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
There were 64 data bits and 8 check bits.
It seems to me by the nature of parity, it should suffice to have one bit of overhead per word, rather than eight. [...]
What you refer to here is a simple single bit parity. Basically counting the number of ones (even parity) or zeros (odd). Such a mechanic can only detect an odd number of bit flip (1 or 3 or 5 or ... flipping). Even number of flips can't be detected and will result in undetected computing errors.
What the cray uses is a parity system based on Hamming encodeing. Encoding parity this way allows to detect multiple bit errors within a word and even correction of these on the fly. The 8 bit code used was able to correct single bit errors (SEC) and detect double error (DED).
So while a machine with a single bit parity can detect single bit flips, it will always fail on double flips. Further, even if an error is detected, the only solution is to halt the program. With SEC-DED, a single error detected will be recovered (final) on the fly (at cost of maybe a few cycles) and a multi bit error will halt the machine.
I can understand on something like an 8088/87, you might be stuck with 1/8 because the memory system deals in eight bits at a time, but why is it that way on a 64-bit machine?
Because it's still just 1/8th, but now with improved flavour :))
Considering the quite important function of invisible error correction the question is rather why only 8. Longer codes would allow to detect even longer errors and multi bit corrections. With the 1 Ki by 1 RAMs used (Fairchild 10415FC), any width could have been made. Then again, the while Cray 1 architecture shows a switch to the 'new' standard of 8 bit units - so using 8 parity bits comes natural. Doesn't it?
Remark#1
Eventually it's the same development the PC took, just instead of going from 9 bit memory (SIMM) over 36 bit (PS/2) to today's 72 Bit DIMM, the Cray-1 leapfrogged all of this and started with 72 Bit right away.
Remark#2
Seymor Cray is known to have said that 'Parity is for Farmers' when designing the 6600. While this quote was famous in inspiring the reply 'Farmers buy Computers' when parity got introduced with the 7600, not may know what he was referring on an implied level: The Doctrine of Parity, a US policy to make farming profitable again during and after the great depression - a policy that to some degree still results in higher food prices in the US than in most other countries.
Remark#3
The Cray Y-MP of 1990 even went a step ahead and added parity to (most) registers. Also the code was changed to enable double bit correction and multi bit detection.
Cray certainly resisted parity and error checking hardware in the Cray-1, because it was a performance hit. AFAIK one (the first production?) Cray-1 was built without parity and delivered to a US government agency (can't remember exactly where), and it did have better benchmarked performance than any of the later production machines.
– alephzero
42 mins ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "648"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9318%2fwhy-did-the-cray-1-have-8-parity-bits-per-word%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
There were 64 data bits and 8 check bits.
It seems to me by the nature of parity, it should suffice to have one bit of overhead per word, rather than eight. [...]
What you refer to here is a simple single bit parity. Basically counting the number of ones (even parity) or zeros (odd). Such a mechanic can only detect an odd number of bit flip (1 or 3 or 5 or ... flipping). Even number of flips can't be detected and will result in undetected computing errors.
What the cray uses is a parity system based on Hamming encodeing. Encoding parity this way allows to detect multiple bit errors within a word and even correction of these on the fly. The 8 bit code used was able to correct single bit errors (SEC) and detect double error (DED).
So while a machine with a single bit parity can detect single bit flips, it will always fail on double flips. Further, even if an error is detected, the only solution is to halt the program. With SEC-DED, a single error detected will be recovered (final) on the fly (at cost of maybe a few cycles) and a multi bit error will halt the machine.
I can understand on something like an 8088/87, you might be stuck with 1/8 because the memory system deals in eight bits at a time, but why is it that way on a 64-bit machine?
Because it's still just 1/8th, but now with improved flavour :))
Considering the quite important function of invisible error correction the question is rather why only 8. Longer codes would allow to detect even longer errors and multi bit corrections. With the 1 Ki by 1 RAMs used (Fairchild 10415FC), any width could have been made. Then again, the while Cray 1 architecture shows a switch to the 'new' standard of 8 bit units - so using 8 parity bits comes natural. Doesn't it?
Remark#1
Eventually it's the same development the PC took, just instead of going from 9 bit memory (SIMM) over 36 bit (PS/2) to today's 72 Bit DIMM, the Cray-1 leapfrogged all of this and started with 72 Bit right away.
Remark#2
Seymor Cray is known to have said that 'Parity is for Farmers' when designing the 6600. While this quote was famous in inspiring the reply 'Farmers buy Computers' when parity got introduced with the 7600, not may know what he was referring on an implied level: The Doctrine of Parity, a US policy to make farming profitable again during and after the great depression - a policy that to some degree still results in higher food prices in the US than in most other countries.
Remark#3
The Cray Y-MP of 1990 even went a step ahead and added parity to (most) registers. Also the code was changed to enable double bit correction and multi bit detection.
Cray certainly resisted parity and error checking hardware in the Cray-1, because it was a performance hit. AFAIK one (the first production?) Cray-1 was built without parity and delivered to a US government agency (can't remember exactly where), and it did have better benchmarked performance than any of the later production machines.
– alephzero
42 mins ago
add a comment |
There were 64 data bits and 8 check bits.
It seems to me by the nature of parity, it should suffice to have one bit of overhead per word, rather than eight. [...]
What you refer to here is a simple single bit parity. Basically counting the number of ones (even parity) or zeros (odd). Such a mechanic can only detect an odd number of bit flip (1 or 3 or 5 or ... flipping). Even number of flips can't be detected and will result in undetected computing errors.
What the cray uses is a parity system based on Hamming encodeing. Encoding parity this way allows to detect multiple bit errors within a word and even correction of these on the fly. The 8 bit code used was able to correct single bit errors (SEC) and detect double error (DED).
So while a machine with a single bit parity can detect single bit flips, it will always fail on double flips. Further, even if an error is detected, the only solution is to halt the program. With SEC-DED, a single error detected will be recovered (final) on the fly (at cost of maybe a few cycles) and a multi bit error will halt the machine.
I can understand on something like an 8088/87, you might be stuck with 1/8 because the memory system deals in eight bits at a time, but why is it that way on a 64-bit machine?
Because it's still just 1/8th, but now with improved flavour :))
Considering the quite important function of invisible error correction the question is rather why only 8. Longer codes would allow to detect even longer errors and multi bit corrections. With the 1 Ki by 1 RAMs used (Fairchild 10415FC), any width could have been made. Then again, the while Cray 1 architecture shows a switch to the 'new' standard of 8 bit units - so using 8 parity bits comes natural. Doesn't it?
Remark#1
Eventually it's the same development the PC took, just instead of going from 9 bit memory (SIMM) over 36 bit (PS/2) to today's 72 Bit DIMM, the Cray-1 leapfrogged all of this and started with 72 Bit right away.
Remark#2
Seymor Cray is known to have said that 'Parity is for Farmers' when designing the 6600. While this quote was famous in inspiring the reply 'Farmers buy Computers' when parity got introduced with the 7600, not may know what he was referring on an implied level: The Doctrine of Parity, a US policy to make farming profitable again during and after the great depression - a policy that to some degree still results in higher food prices in the US than in most other countries.
Remark#3
The Cray Y-MP of 1990 even went a step ahead and added parity to (most) registers. Also the code was changed to enable double bit correction and multi bit detection.
Cray certainly resisted parity and error checking hardware in the Cray-1, because it was a performance hit. AFAIK one (the first production?) Cray-1 was built without parity and delivered to a US government agency (can't remember exactly where), and it did have better benchmarked performance than any of the later production machines.
– alephzero
42 mins ago
add a comment |
There were 64 data bits and 8 check bits.
It seems to me by the nature of parity, it should suffice to have one bit of overhead per word, rather than eight. [...]
What you refer to here is a simple single bit parity. Basically counting the number of ones (even parity) or zeros (odd). Such a mechanic can only detect an odd number of bit flip (1 or 3 or 5 or ... flipping). Even number of flips can't be detected and will result in undetected computing errors.
What the cray uses is a parity system based on Hamming encodeing. Encoding parity this way allows to detect multiple bit errors within a word and even correction of these on the fly. The 8 bit code used was able to correct single bit errors (SEC) and detect double error (DED).
So while a machine with a single bit parity can detect single bit flips, it will always fail on double flips. Further, even if an error is detected, the only solution is to halt the program. With SEC-DED, a single error detected will be recovered (final) on the fly (at cost of maybe a few cycles) and a multi bit error will halt the machine.
I can understand on something like an 8088/87, you might be stuck with 1/8 because the memory system deals in eight bits at a time, but why is it that way on a 64-bit machine?
Because it's still just 1/8th, but now with improved flavour :))
Considering the quite important function of invisible error correction the question is rather why only 8. Longer codes would allow to detect even longer errors and multi bit corrections. With the 1 Ki by 1 RAMs used (Fairchild 10415FC), any width could have been made. Then again, the while Cray 1 architecture shows a switch to the 'new' standard of 8 bit units - so using 8 parity bits comes natural. Doesn't it?
Remark#1
Eventually it's the same development the PC took, just instead of going from 9 bit memory (SIMM) over 36 bit (PS/2) to today's 72 Bit DIMM, the Cray-1 leapfrogged all of this and started with 72 Bit right away.
Remark#2
Seymor Cray is known to have said that 'Parity is for Farmers' when designing the 6600. While this quote was famous in inspiring the reply 'Farmers buy Computers' when parity got introduced with the 7600, not may know what he was referring on an implied level: The Doctrine of Parity, a US policy to make farming profitable again during and after the great depression - a policy that to some degree still results in higher food prices in the US than in most other countries.
Remark#3
The Cray Y-MP of 1990 even went a step ahead and added parity to (most) registers. Also the code was changed to enable double bit correction and multi bit detection.
There were 64 data bits and 8 check bits.
It seems to me by the nature of parity, it should suffice to have one bit of overhead per word, rather than eight. [...]
What you refer to here is a simple single bit parity. Basically counting the number of ones (even parity) or zeros (odd). Such a mechanic can only detect an odd number of bit flip (1 or 3 or 5 or ... flipping). Even number of flips can't be detected and will result in undetected computing errors.
What the cray uses is a parity system based on Hamming encodeing. Encoding parity this way allows to detect multiple bit errors within a word and even correction of these on the fly. The 8 bit code used was able to correct single bit errors (SEC) and detect double error (DED).
So while a machine with a single bit parity can detect single bit flips, it will always fail on double flips. Further, even if an error is detected, the only solution is to halt the program. With SEC-DED, a single error detected will be recovered (final) on the fly (at cost of maybe a few cycles) and a multi bit error will halt the machine.
I can understand on something like an 8088/87, you might be stuck with 1/8 because the memory system deals in eight bits at a time, but why is it that way on a 64-bit machine?
Because it's still just 1/8th, but now with improved flavour :))
Considering the quite important function of invisible error correction the question is rather why only 8. Longer codes would allow to detect even longer errors and multi bit corrections. With the 1 Ki by 1 RAMs used (Fairchild 10415FC), any width could have been made. Then again, the while Cray 1 architecture shows a switch to the 'new' standard of 8 bit units - so using 8 parity bits comes natural. Doesn't it?
Remark#1
Eventually it's the same development the PC took, just instead of going from 9 bit memory (SIMM) over 36 bit (PS/2) to today's 72 Bit DIMM, the Cray-1 leapfrogged all of this and started with 72 Bit right away.
Remark#2
Seymor Cray is known to have said that 'Parity is for Farmers' when designing the 6600. While this quote was famous in inspiring the reply 'Farmers buy Computers' when parity got introduced with the 7600, not may know what he was referring on an implied level: The Doctrine of Parity, a US policy to make farming profitable again during and after the great depression - a policy that to some degree still results in higher food prices in the US than in most other countries.
Remark#3
The Cray Y-MP of 1990 even went a step ahead and added parity to (most) registers. Also the code was changed to enable double bit correction and multi bit detection.
edited 1 hour ago
answered 1 hour ago
RaffzahnRaffzahn
52.4k6123212
52.4k6123212
Cray certainly resisted parity and error checking hardware in the Cray-1, because it was a performance hit. AFAIK one (the first production?) Cray-1 was built without parity and delivered to a US government agency (can't remember exactly where), and it did have better benchmarked performance than any of the later production machines.
– alephzero
42 mins ago
add a comment |
Cray certainly resisted parity and error checking hardware in the Cray-1, because it was a performance hit. AFAIK one (the first production?) Cray-1 was built without parity and delivered to a US government agency (can't remember exactly where), and it did have better benchmarked performance than any of the later production machines.
– alephzero
42 mins ago
Cray certainly resisted parity and error checking hardware in the Cray-1, because it was a performance hit. AFAIK one (the first production?) Cray-1 was built without parity and delivered to a US government agency (can't remember exactly where), and it did have better benchmarked performance than any of the later production machines.
– alephzero
42 mins ago
Cray certainly resisted parity and error checking hardware in the Cray-1, because it was a performance hit. AFAIK one (the first production?) Cray-1 was built without parity and delivered to a US government agency (can't remember exactly where), and it did have better benchmarked performance than any of the later production machines.
– alephzero
42 mins ago
add a comment |
Thanks for contributing an answer to Retrocomputing Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9318%2fwhy-did-the-cray-1-have-8-parity-bits-per-word%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown