IBM PC expansion card latency
In the IBM PC and early successors and compatibles, it was commonplace for most of the computer's memory to be on cards in general expansion slots. (e.g. the original IBM PC could take 64K on the motherboard, but to get up to the 256K needed for Lotus 1-2-3, you had to use expansion cards of 64K each.) Even after this stopped being necessary thanks to higher density RAM chips, video memory would still be on an expansion card.
Was the latency for the CPU to access these memory banks, the same as it was for main memory on the motherboard? Or were there any models on which the CPU had to incur wait states accessing cards?
hardware ibm-pc memory
add a comment |
In the IBM PC and early successors and compatibles, it was commonplace for most of the computer's memory to be on cards in general expansion slots. (e.g. the original IBM PC could take 64K on the motherboard, but to get up to the 256K needed for Lotus 1-2-3, you had to use expansion cards of 64K each.) Even after this stopped being necessary thanks to higher density RAM chips, video memory would still be on an expansion card.
Was the latency for the CPU to access these memory banks, the same as it was for main memory on the motherboard? Or were there any models on which the CPU had to incur wait states accessing cards?
hardware ibm-pc memory
add a comment |
In the IBM PC and early successors and compatibles, it was commonplace for most of the computer's memory to be on cards in general expansion slots. (e.g. the original IBM PC could take 64K on the motherboard, but to get up to the 256K needed for Lotus 1-2-3, you had to use expansion cards of 64K each.) Even after this stopped being necessary thanks to higher density RAM chips, video memory would still be on an expansion card.
Was the latency for the CPU to access these memory banks, the same as it was for main memory on the motherboard? Or were there any models on which the CPU had to incur wait states accessing cards?
hardware ibm-pc memory
In the IBM PC and early successors and compatibles, it was commonplace for most of the computer's memory to be on cards in general expansion slots. (e.g. the original IBM PC could take 64K on the motherboard, but to get up to the 256K needed for Lotus 1-2-3, you had to use expansion cards of 64K each.) Even after this stopped being necessary thanks to higher density RAM chips, video memory would still be on an expansion card.
Was the latency for the CPU to access these memory banks, the same as it was for main memory on the motherboard? Or were there any models on which the CPU had to incur wait states accessing cards?
hardware ibm-pc memory
hardware ibm-pc memory
asked 1 hour ago
rwallacerwallace
7,899336111
7,899336111
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Same. At least for The PC.
Later machines where ofc. throttled accordingly to keep slot access speed within the original spec. What else should they have done?
Good point - you can't just run a card faster than it was specified for. Though later when there are 16-bit cards, you could presumably at least assume these can handle 6 MHz (AT speed) rather than being limited to 4.77 MHz?
– rwallace
50 mins ago
Well, yes ... and from there on it gets complicated :))
– Raffzahn
27 mins ago
add a comment |
The number of wait states added for a memory cycle did not depend directly on whether the memory was on the system board or an expansion card, but it was possible for either or both to add a wait state.
The original IBM PC added 1 wait state for system board memory accesses but it was possible for a memory expansion card to run at 0 wait states by asserting the NOWS line during an access cycle. I don't know whether there were any memory expansion boards that actually did this or not.
Later, the XT 286 supported 0 wait states for its system board RAM which made it perform faster than the 1-wait-state AT at the same clock speed.
Eventually when the bus clock became separated from the CPU clock, it was then very common for expansion card memory to be significantly slower than system board memory, simply due to being limited to the bus speed (typically 8MHz) rather than the 'native' CPU speed. But for the PC, XT and AT the bus speed was the same as the CPU speed so this was not a factor.
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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%2f8757%2fibm-pc-expansion-card-latency%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Same. At least for The PC.
Later machines where ofc. throttled accordingly to keep slot access speed within the original spec. What else should they have done?
Good point - you can't just run a card faster than it was specified for. Though later when there are 16-bit cards, you could presumably at least assume these can handle 6 MHz (AT speed) rather than being limited to 4.77 MHz?
– rwallace
50 mins ago
Well, yes ... and from there on it gets complicated :))
– Raffzahn
27 mins ago
add a comment |
Same. At least for The PC.
Later machines where ofc. throttled accordingly to keep slot access speed within the original spec. What else should they have done?
Good point - you can't just run a card faster than it was specified for. Though later when there are 16-bit cards, you could presumably at least assume these can handle 6 MHz (AT speed) rather than being limited to 4.77 MHz?
– rwallace
50 mins ago
Well, yes ... and from there on it gets complicated :))
– Raffzahn
27 mins ago
add a comment |
Same. At least for The PC.
Later machines where ofc. throttled accordingly to keep slot access speed within the original spec. What else should they have done?
Same. At least for The PC.
Later machines where ofc. throttled accordingly to keep slot access speed within the original spec. What else should they have done?
answered 59 mins ago
RaffzahnRaffzahn
46.8k5104189
46.8k5104189
Good point - you can't just run a card faster than it was specified for. Though later when there are 16-bit cards, you could presumably at least assume these can handle 6 MHz (AT speed) rather than being limited to 4.77 MHz?
– rwallace
50 mins ago
Well, yes ... and from there on it gets complicated :))
– Raffzahn
27 mins ago
add a comment |
Good point - you can't just run a card faster than it was specified for. Though later when there are 16-bit cards, you could presumably at least assume these can handle 6 MHz (AT speed) rather than being limited to 4.77 MHz?
– rwallace
50 mins ago
Well, yes ... and from there on it gets complicated :))
– Raffzahn
27 mins ago
Good point - you can't just run a card faster than it was specified for. Though later when there are 16-bit cards, you could presumably at least assume these can handle 6 MHz (AT speed) rather than being limited to 4.77 MHz?
– rwallace
50 mins ago
Good point - you can't just run a card faster than it was specified for. Though later when there are 16-bit cards, you could presumably at least assume these can handle 6 MHz (AT speed) rather than being limited to 4.77 MHz?
– rwallace
50 mins ago
Well, yes ... and from there on it gets complicated :))
– Raffzahn
27 mins ago
Well, yes ... and from there on it gets complicated :))
– Raffzahn
27 mins ago
add a comment |
The number of wait states added for a memory cycle did not depend directly on whether the memory was on the system board or an expansion card, but it was possible for either or both to add a wait state.
The original IBM PC added 1 wait state for system board memory accesses but it was possible for a memory expansion card to run at 0 wait states by asserting the NOWS line during an access cycle. I don't know whether there were any memory expansion boards that actually did this or not.
Later, the XT 286 supported 0 wait states for its system board RAM which made it perform faster than the 1-wait-state AT at the same clock speed.
Eventually when the bus clock became separated from the CPU clock, it was then very common for expansion card memory to be significantly slower than system board memory, simply due to being limited to the bus speed (typically 8MHz) rather than the 'native' CPU speed. But for the PC, XT and AT the bus speed was the same as the CPU speed so this was not a factor.
add a comment |
The number of wait states added for a memory cycle did not depend directly on whether the memory was on the system board or an expansion card, but it was possible for either or both to add a wait state.
The original IBM PC added 1 wait state for system board memory accesses but it was possible for a memory expansion card to run at 0 wait states by asserting the NOWS line during an access cycle. I don't know whether there were any memory expansion boards that actually did this or not.
Later, the XT 286 supported 0 wait states for its system board RAM which made it perform faster than the 1-wait-state AT at the same clock speed.
Eventually when the bus clock became separated from the CPU clock, it was then very common for expansion card memory to be significantly slower than system board memory, simply due to being limited to the bus speed (typically 8MHz) rather than the 'native' CPU speed. But for the PC, XT and AT the bus speed was the same as the CPU speed so this was not a factor.
add a comment |
The number of wait states added for a memory cycle did not depend directly on whether the memory was on the system board or an expansion card, but it was possible for either or both to add a wait state.
The original IBM PC added 1 wait state for system board memory accesses but it was possible for a memory expansion card to run at 0 wait states by asserting the NOWS line during an access cycle. I don't know whether there were any memory expansion boards that actually did this or not.
Later, the XT 286 supported 0 wait states for its system board RAM which made it perform faster than the 1-wait-state AT at the same clock speed.
Eventually when the bus clock became separated from the CPU clock, it was then very common for expansion card memory to be significantly slower than system board memory, simply due to being limited to the bus speed (typically 8MHz) rather than the 'native' CPU speed. But for the PC, XT and AT the bus speed was the same as the CPU speed so this was not a factor.
The number of wait states added for a memory cycle did not depend directly on whether the memory was on the system board or an expansion card, but it was possible for either or both to add a wait state.
The original IBM PC added 1 wait state for system board memory accesses but it was possible for a memory expansion card to run at 0 wait states by asserting the NOWS line during an access cycle. I don't know whether there were any memory expansion boards that actually did this or not.
Later, the XT 286 supported 0 wait states for its system board RAM which made it perform faster than the 1-wait-state AT at the same clock speed.
Eventually when the bus clock became separated from the CPU clock, it was then very common for expansion card memory to be significantly slower than system board memory, simply due to being limited to the bus speed (typically 8MHz) rather than the 'native' CPU speed. But for the PC, XT and AT the bus speed was the same as the CPU speed so this was not a factor.
answered 45 mins ago
Ken GoberKen Gober
7,73712039
7,73712039
add a comment |
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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%2f8757%2fibm-pc-expansion-card-latency%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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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