Why do old computers perform a long memory test on every boot?
Clash Royale CLAN TAG#URR8PPP
up vote
1
down vote
favorite
Basically any computers from the mid 90s and earlier perform a slow memory check on every single boot. The more memory there is present, the slower that process becomes, for example: https://www.youtube.com/watch?v=A3Po8zneaLE
Why are they doing that? Modern computers, as far as I am aware of, only check their memory when explicitly told to. What exactly are retro computers doing during that check that more modern computers seem to not do and why?
hardware memory boot
New contributor
add a comment |Â
up vote
1
down vote
favorite
Basically any computers from the mid 90s and earlier perform a slow memory check on every single boot. The more memory there is present, the slower that process becomes, for example: https://www.youtube.com/watch?v=A3Po8zneaLE
Why are they doing that? Modern computers, as far as I am aware of, only check their memory when explicitly told to. What exactly are retro computers doing during that check that more modern computers seem to not do and why?
hardware memory boot
New contributor
add a comment |Â
up vote
1
down vote
favorite
up vote
1
down vote
favorite
Basically any computers from the mid 90s and earlier perform a slow memory check on every single boot. The more memory there is present, the slower that process becomes, for example: https://www.youtube.com/watch?v=A3Po8zneaLE
Why are they doing that? Modern computers, as far as I am aware of, only check their memory when explicitly told to. What exactly are retro computers doing during that check that more modern computers seem to not do and why?
hardware memory boot
New contributor
Basically any computers from the mid 90s and earlier perform a slow memory check on every single boot. The more memory there is present, the slower that process becomes, for example: https://www.youtube.com/watch?v=A3Po8zneaLE
Why are they doing that? Modern computers, as far as I am aware of, only check their memory when explicitly told to. What exactly are retro computers doing during that check that more modern computers seem to not do and why?
hardware memory boot
hardware memory boot
New contributor
New contributor
New contributor
asked 3 hours ago
Andreas Hartmann
1084
1084
New contributor
New contributor
add a comment |Â
add a comment |Â
1 Answer
1
active
oldest
votes
up vote
3
down vote
accepted
Why are they doing that?
Most important reaeon here is that IBM introduced that check as part of the BIOS startup code, so everyone copied it to be compatible.
The PC did differ from many other machines of the same time, that it did a thruout test of all components installed at power up to make sure the configuration is operable. Something carried over from mainframes or alike professional systems. Other machines just initialized components and let the user guess whats wrong when an error occured.
Modern computers, as far as I am aware of, only check their memory when explicitly told to.
RAMs got more reliable over the years. Equally important, RAM-size increased manyfold, making a thruout memory test anything but quick. Last but not least, memory design for PCs did split in the (late) 90s between consumer PC with error detection (like the first PC) and professional machines with error correction (ECC). Where consumer grade machines just let the process/OS die on the USER, Professional systems will not only correct starting RAM failure, but also report it which (hopefuly) leads to preemptive RAM change.
What exactly are retro computers doing during that check that more modern computers seem to not do
Variaous bit patterns are written to RAM and read agin to detect cell failure or certain kinds of cross over. The test is split in two parts, Base RAM (first 16/64 KiB, *1,2) and memory above 64 KiB. On AT (286+) class machines a third (faster) test may be used for memory above 1 MiB (*3) together with an additional test in protected mode and even more divergeing POST codes.
In conventional memory (up to 1 MiB ,*4) is checked in 4 KiB blocks (*5) and reported as such. The BIOS halts if there is an error in the first 16 KiB (original PC) or first 64 KiB (XT and above).
The bit pattern used (*6) for the first 64 KiB is AA, 55, 00, FF, 01, 02, 04, 08, 10, 20, 40, 80 They are written (and read) in a way to not only detect single bit failiures, but also address and data line missmatch/failiure.
For the remaining memory it is shortened to AA, 55 , FF, 00 and 01.
(Here is a nice explanation of basic bit walking and increment tests similar to what the PC does/did and what it will show)
and why?
To alarm its user of an immanent RAM problem before it occures during work and he may loose hours of work due a flipped bit.
*1 - 16 KiB on the first series of 5150 PCs (64 Kib Motherboard), 64KiB on the later (256 KiB motherboard and XT)
*2 - On the XT there is a seperate BIOS POST code for the first 32 KiB.
*3 - The beep codes do not distinguish between above 64 KiB and above 1 MiB)
*4 - Well, in reality on the early PCs only until 544 KiB, while later would go unitl 640.
*5 - Looks like a hint as if they expected 4 KiB chips to be used - at least during early development stage - or that test was copied from some other device using them.
*6 - Caveat: Bit paterns are taken from an old mans memory, to verify browsing the BIOS would be helpful.
2
Wasn't it also in some cases to check total amount of memory? A lot of retro computers didn't have any place to save that information until next start.
â UncleBod
2 hours ago
1
@UncleBod Other computers did, but not for the (original) PC, as it's memory size was set by switches. One switch (group) noted what banks are filled and another group the amount of RAM inserted. The BIOS was ment to obey these setings, not search for themself.
â Raffzahn
2 hours ago
1
Thank you for this comprehensive answer.
â Andreas Hartmann
1 hour ago
@AndreasHartmann Maybe check this additional page: esacademy.com/en/library/technical-articles-and-documents/â¦
â Raffzahn
34 mins ago
add a comment |Â
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
3
down vote
accepted
Why are they doing that?
Most important reaeon here is that IBM introduced that check as part of the BIOS startup code, so everyone copied it to be compatible.
The PC did differ from many other machines of the same time, that it did a thruout test of all components installed at power up to make sure the configuration is operable. Something carried over from mainframes or alike professional systems. Other machines just initialized components and let the user guess whats wrong when an error occured.
Modern computers, as far as I am aware of, only check their memory when explicitly told to.
RAMs got more reliable over the years. Equally important, RAM-size increased manyfold, making a thruout memory test anything but quick. Last but not least, memory design for PCs did split in the (late) 90s between consumer PC with error detection (like the first PC) and professional machines with error correction (ECC). Where consumer grade machines just let the process/OS die on the USER, Professional systems will not only correct starting RAM failure, but also report it which (hopefuly) leads to preemptive RAM change.
What exactly are retro computers doing during that check that more modern computers seem to not do
Variaous bit patterns are written to RAM and read agin to detect cell failure or certain kinds of cross over. The test is split in two parts, Base RAM (first 16/64 KiB, *1,2) and memory above 64 KiB. On AT (286+) class machines a third (faster) test may be used for memory above 1 MiB (*3) together with an additional test in protected mode and even more divergeing POST codes.
In conventional memory (up to 1 MiB ,*4) is checked in 4 KiB blocks (*5) and reported as such. The BIOS halts if there is an error in the first 16 KiB (original PC) or first 64 KiB (XT and above).
The bit pattern used (*6) for the first 64 KiB is AA, 55, 00, FF, 01, 02, 04, 08, 10, 20, 40, 80 They are written (and read) in a way to not only detect single bit failiures, but also address and data line missmatch/failiure.
For the remaining memory it is shortened to AA, 55 , FF, 00 and 01.
(Here is a nice explanation of basic bit walking and increment tests similar to what the PC does/did and what it will show)
and why?
To alarm its user of an immanent RAM problem before it occures during work and he may loose hours of work due a flipped bit.
*1 - 16 KiB on the first series of 5150 PCs (64 Kib Motherboard), 64KiB on the later (256 KiB motherboard and XT)
*2 - On the XT there is a seperate BIOS POST code for the first 32 KiB.
*3 - The beep codes do not distinguish between above 64 KiB and above 1 MiB)
*4 - Well, in reality on the early PCs only until 544 KiB, while later would go unitl 640.
*5 - Looks like a hint as if they expected 4 KiB chips to be used - at least during early development stage - or that test was copied from some other device using them.
*6 - Caveat: Bit paterns are taken from an old mans memory, to verify browsing the BIOS would be helpful.
2
Wasn't it also in some cases to check total amount of memory? A lot of retro computers didn't have any place to save that information until next start.
â UncleBod
2 hours ago
1
@UncleBod Other computers did, but not for the (original) PC, as it's memory size was set by switches. One switch (group) noted what banks are filled and another group the amount of RAM inserted. The BIOS was ment to obey these setings, not search for themself.
â Raffzahn
2 hours ago
1
Thank you for this comprehensive answer.
â Andreas Hartmann
1 hour ago
@AndreasHartmann Maybe check this additional page: esacademy.com/en/library/technical-articles-and-documents/â¦
â Raffzahn
34 mins ago
add a comment |Â
up vote
3
down vote
accepted
Why are they doing that?
Most important reaeon here is that IBM introduced that check as part of the BIOS startup code, so everyone copied it to be compatible.
The PC did differ from many other machines of the same time, that it did a thruout test of all components installed at power up to make sure the configuration is operable. Something carried over from mainframes or alike professional systems. Other machines just initialized components and let the user guess whats wrong when an error occured.
Modern computers, as far as I am aware of, only check their memory when explicitly told to.
RAMs got more reliable over the years. Equally important, RAM-size increased manyfold, making a thruout memory test anything but quick. Last but not least, memory design for PCs did split in the (late) 90s between consumer PC with error detection (like the first PC) and professional machines with error correction (ECC). Where consumer grade machines just let the process/OS die on the USER, Professional systems will not only correct starting RAM failure, but also report it which (hopefuly) leads to preemptive RAM change.
What exactly are retro computers doing during that check that more modern computers seem to not do
Variaous bit patterns are written to RAM and read agin to detect cell failure or certain kinds of cross over. The test is split in two parts, Base RAM (first 16/64 KiB, *1,2) and memory above 64 KiB. On AT (286+) class machines a third (faster) test may be used for memory above 1 MiB (*3) together with an additional test in protected mode and even more divergeing POST codes.
In conventional memory (up to 1 MiB ,*4) is checked in 4 KiB blocks (*5) and reported as such. The BIOS halts if there is an error in the first 16 KiB (original PC) or first 64 KiB (XT and above).
The bit pattern used (*6) for the first 64 KiB is AA, 55, 00, FF, 01, 02, 04, 08, 10, 20, 40, 80 They are written (and read) in a way to not only detect single bit failiures, but also address and data line missmatch/failiure.
For the remaining memory it is shortened to AA, 55 , FF, 00 and 01.
(Here is a nice explanation of basic bit walking and increment tests similar to what the PC does/did and what it will show)
and why?
To alarm its user of an immanent RAM problem before it occures during work and he may loose hours of work due a flipped bit.
*1 - 16 KiB on the first series of 5150 PCs (64 Kib Motherboard), 64KiB on the later (256 KiB motherboard and XT)
*2 - On the XT there is a seperate BIOS POST code for the first 32 KiB.
*3 - The beep codes do not distinguish between above 64 KiB and above 1 MiB)
*4 - Well, in reality on the early PCs only until 544 KiB, while later would go unitl 640.
*5 - Looks like a hint as if they expected 4 KiB chips to be used - at least during early development stage - or that test was copied from some other device using them.
*6 - Caveat: Bit paterns are taken from an old mans memory, to verify browsing the BIOS would be helpful.
2
Wasn't it also in some cases to check total amount of memory? A lot of retro computers didn't have any place to save that information until next start.
â UncleBod
2 hours ago
1
@UncleBod Other computers did, but not for the (original) PC, as it's memory size was set by switches. One switch (group) noted what banks are filled and another group the amount of RAM inserted. The BIOS was ment to obey these setings, not search for themself.
â Raffzahn
2 hours ago
1
Thank you for this comprehensive answer.
â Andreas Hartmann
1 hour ago
@AndreasHartmann Maybe check this additional page: esacademy.com/en/library/technical-articles-and-documents/â¦
â Raffzahn
34 mins ago
add a comment |Â
up vote
3
down vote
accepted
up vote
3
down vote
accepted
Why are they doing that?
Most important reaeon here is that IBM introduced that check as part of the BIOS startup code, so everyone copied it to be compatible.
The PC did differ from many other machines of the same time, that it did a thruout test of all components installed at power up to make sure the configuration is operable. Something carried over from mainframes or alike professional systems. Other machines just initialized components and let the user guess whats wrong when an error occured.
Modern computers, as far as I am aware of, only check their memory when explicitly told to.
RAMs got more reliable over the years. Equally important, RAM-size increased manyfold, making a thruout memory test anything but quick. Last but not least, memory design for PCs did split in the (late) 90s between consumer PC with error detection (like the first PC) and professional machines with error correction (ECC). Where consumer grade machines just let the process/OS die on the USER, Professional systems will not only correct starting RAM failure, but also report it which (hopefuly) leads to preemptive RAM change.
What exactly are retro computers doing during that check that more modern computers seem to not do
Variaous bit patterns are written to RAM and read agin to detect cell failure or certain kinds of cross over. The test is split in two parts, Base RAM (first 16/64 KiB, *1,2) and memory above 64 KiB. On AT (286+) class machines a third (faster) test may be used for memory above 1 MiB (*3) together with an additional test in protected mode and even more divergeing POST codes.
In conventional memory (up to 1 MiB ,*4) is checked in 4 KiB blocks (*5) and reported as such. The BIOS halts if there is an error in the first 16 KiB (original PC) or first 64 KiB (XT and above).
The bit pattern used (*6) for the first 64 KiB is AA, 55, 00, FF, 01, 02, 04, 08, 10, 20, 40, 80 They are written (and read) in a way to not only detect single bit failiures, but also address and data line missmatch/failiure.
For the remaining memory it is shortened to AA, 55 , FF, 00 and 01.
(Here is a nice explanation of basic bit walking and increment tests similar to what the PC does/did and what it will show)
and why?
To alarm its user of an immanent RAM problem before it occures during work and he may loose hours of work due a flipped bit.
*1 - 16 KiB on the first series of 5150 PCs (64 Kib Motherboard), 64KiB on the later (256 KiB motherboard and XT)
*2 - On the XT there is a seperate BIOS POST code for the first 32 KiB.
*3 - The beep codes do not distinguish between above 64 KiB and above 1 MiB)
*4 - Well, in reality on the early PCs only until 544 KiB, while later would go unitl 640.
*5 - Looks like a hint as if they expected 4 KiB chips to be used - at least during early development stage - or that test was copied from some other device using them.
*6 - Caveat: Bit paterns are taken from an old mans memory, to verify browsing the BIOS would be helpful.
Why are they doing that?
Most important reaeon here is that IBM introduced that check as part of the BIOS startup code, so everyone copied it to be compatible.
The PC did differ from many other machines of the same time, that it did a thruout test of all components installed at power up to make sure the configuration is operable. Something carried over from mainframes or alike professional systems. Other machines just initialized components and let the user guess whats wrong when an error occured.
Modern computers, as far as I am aware of, only check their memory when explicitly told to.
RAMs got more reliable over the years. Equally important, RAM-size increased manyfold, making a thruout memory test anything but quick. Last but not least, memory design for PCs did split in the (late) 90s between consumer PC with error detection (like the first PC) and professional machines with error correction (ECC). Where consumer grade machines just let the process/OS die on the USER, Professional systems will not only correct starting RAM failure, but also report it which (hopefuly) leads to preemptive RAM change.
What exactly are retro computers doing during that check that more modern computers seem to not do
Variaous bit patterns are written to RAM and read agin to detect cell failure or certain kinds of cross over. The test is split in two parts, Base RAM (first 16/64 KiB, *1,2) and memory above 64 KiB. On AT (286+) class machines a third (faster) test may be used for memory above 1 MiB (*3) together with an additional test in protected mode and even more divergeing POST codes.
In conventional memory (up to 1 MiB ,*4) is checked in 4 KiB blocks (*5) and reported as such. The BIOS halts if there is an error in the first 16 KiB (original PC) or first 64 KiB (XT and above).
The bit pattern used (*6) for the first 64 KiB is AA, 55, 00, FF, 01, 02, 04, 08, 10, 20, 40, 80 They are written (and read) in a way to not only detect single bit failiures, but also address and data line missmatch/failiure.
For the remaining memory it is shortened to AA, 55 , FF, 00 and 01.
(Here is a nice explanation of basic bit walking and increment tests similar to what the PC does/did and what it will show)
and why?
To alarm its user of an immanent RAM problem before it occures during work and he may loose hours of work due a flipped bit.
*1 - 16 KiB on the first series of 5150 PCs (64 Kib Motherboard), 64KiB on the later (256 KiB motherboard and XT)
*2 - On the XT there is a seperate BIOS POST code for the first 32 KiB.
*3 - The beep codes do not distinguish between above 64 KiB and above 1 MiB)
*4 - Well, in reality on the early PCs only until 544 KiB, while later would go unitl 640.
*5 - Looks like a hint as if they expected 4 KiB chips to be used - at least during early development stage - or that test was copied from some other device using them.
*6 - Caveat: Bit paterns are taken from an old mans memory, to verify browsing the BIOS would be helpful.
edited 37 mins ago
answered 2 hours ago
Raffzahn
36.9k481147
36.9k481147
2
Wasn't it also in some cases to check total amount of memory? A lot of retro computers didn't have any place to save that information until next start.
â UncleBod
2 hours ago
1
@UncleBod Other computers did, but not for the (original) PC, as it's memory size was set by switches. One switch (group) noted what banks are filled and another group the amount of RAM inserted. The BIOS was ment to obey these setings, not search for themself.
â Raffzahn
2 hours ago
1
Thank you for this comprehensive answer.
â Andreas Hartmann
1 hour ago
@AndreasHartmann Maybe check this additional page: esacademy.com/en/library/technical-articles-and-documents/â¦
â Raffzahn
34 mins ago
add a comment |Â
2
Wasn't it also in some cases to check total amount of memory? A lot of retro computers didn't have any place to save that information until next start.
â UncleBod
2 hours ago
1
@UncleBod Other computers did, but not for the (original) PC, as it's memory size was set by switches. One switch (group) noted what banks are filled and another group the amount of RAM inserted. The BIOS was ment to obey these setings, not search for themself.
â Raffzahn
2 hours ago
1
Thank you for this comprehensive answer.
â Andreas Hartmann
1 hour ago
@AndreasHartmann Maybe check this additional page: esacademy.com/en/library/technical-articles-and-documents/â¦
â Raffzahn
34 mins ago
2
2
Wasn't it also in some cases to check total amount of memory? A lot of retro computers didn't have any place to save that information until next start.
â UncleBod
2 hours ago
Wasn't it also in some cases to check total amount of memory? A lot of retro computers didn't have any place to save that information until next start.
â UncleBod
2 hours ago
1
1
@UncleBod Other computers did, but not for the (original) PC, as it's memory size was set by switches. One switch (group) noted what banks are filled and another group the amount of RAM inserted. The BIOS was ment to obey these setings, not search for themself.
â Raffzahn
2 hours ago
@UncleBod Other computers did, but not for the (original) PC, as it's memory size was set by switches. One switch (group) noted what banks are filled and another group the amount of RAM inserted. The BIOS was ment to obey these setings, not search for themself.
â Raffzahn
2 hours ago
1
1
Thank you for this comprehensive answer.
â Andreas Hartmann
1 hour ago
Thank you for this comprehensive answer.
â Andreas Hartmann
1 hour ago
@AndreasHartmann Maybe check this additional page: esacademy.com/en/library/technical-articles-and-documents/â¦
â Raffzahn
34 mins ago
@AndreasHartmann Maybe check this additional page: esacademy.com/en/library/technical-articles-and-documents/â¦
â Raffzahn
34 mins ago
add a comment |Â
Andreas Hartmann is a new contributor. Be nice, and check out our Code of Conduct.
Andreas Hartmann is a new contributor. Be nice, and check out our Code of Conduct.
Andreas Hartmann is a new contributor. Be nice, and check out our Code of Conduct.
Andreas Hartmann is a new contributor. Be nice, and check out our Code of Conduct.
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
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f7870%2fwhy-do-old-computers-perform-a-long-memory-test-on-every-boot%23new-answer', 'question_page');
);
Post as a guest
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
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
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