Z80N multiply compared to MC68000How did multiply instructions work in the various 68ks?How did “full memory” Spectrum tape copiers work?Measuring frame length on the ZX SpectrumWhat is the relative code density of 8-bit microprocessors?Z80 and video chip contending for random accessWhat's the difference between “opcode” and “instruction” in this Zilog ad?Spectrum clones 512x192 mode usable text resolutionUptime in ZX BASICZX BASIC REM statement overheadZX Spectrum faultHow can a peripheral work on both the ZX81 and on the ZX Spectrum?
Why is the relationship between frequency and pitch exponential?
What's the correct term for a waitress in the Middle Ages?
From system of coupled ODEs to separable ODE
Can a magnetic field of an object be stronger than its gravity?
Pronoun introduced before its antecedent
After the loss of Challenger, why weren’t Galileo and Ulysses launched by Centaurs on expendable boosters?
Should I "tell" my exposition or give it through dialogue?
Why don't B747s start takeoffs with full throttle?
What can plausibly explain many of my very long and low-tech bridges?
In this example, which path would a monster affected by the Dissonant Whispers spell take?
What happens to foam insulation board after you pour concrete slab?
Do any instruments not produce overtones?
Pay as you go Or Oyster card
Movie where a boy is transported into the future by an alien spaceship
How would you say “AKA/as in”?
Reading two lines in piano
Why did a party with more votes get fewer seats in the 2019 European Parliament election in Denmark?
How to make thick Asian sauces?
What is in `tex.print` or `tex.sprint`?
How to generate random points without duplication?
Sharing one invocation list between multiple events on the same object in C#
Word for a small burst of laughter that can't be held back
How can drunken, homicidal elves successfully conduct a wild hunt?
How do I calculate APR from monthly instalments?
Z80N multiply compared to MC68000
How did multiply instructions work in the various 68ks?How did “full memory” Spectrum tape copiers work?Measuring frame length on the ZX SpectrumWhat is the relative code density of 8-bit microprocessors?Z80 and video chip contending for random accessWhat's the difference between “opcode” and “instruction” in this Zilog ad?Spectrum clones 512x192 mode usable text resolutionUptime in ZX BASICZX BASIC REM statement overheadZX Spectrum faultHow can a peripheral work on both the ZX81 and on the ZX Spectrum?
According to the answer here: https://retrocomputing.stackexchange.com/a/7670/11430
The MC68000 can take up to 70 clock cycles to multiply.
The ZX Spectrum Next's Z80N has a "mul de" instruction that always takes 8 T-States.
How does it do that? What is the difference between how they work?
z80 zx-spectrum
New contributor
add a comment |
According to the answer here: https://retrocomputing.stackexchange.com/a/7670/11430
The MC68000 can take up to 70 clock cycles to multiply.
The ZX Spectrum Next's Z80N has a "mul de" instruction that always takes 8 T-States.
How does it do that? What is the difference between how they work?
z80 zx-spectrum
New contributor
add a comment |
According to the answer here: https://retrocomputing.stackexchange.com/a/7670/11430
The MC68000 can take up to 70 clock cycles to multiply.
The ZX Spectrum Next's Z80N has a "mul de" instruction that always takes 8 T-States.
How does it do that? What is the difference between how they work?
z80 zx-spectrum
New contributor
According to the answer here: https://retrocomputing.stackexchange.com/a/7670/11430
The MC68000 can take up to 70 clock cycles to multiply.
The ZX Spectrum Next's Z80N has a "mul de" instruction that always takes 8 T-States.
How does it do that? What is the difference between how they work?
z80 zx-spectrum
z80 zx-spectrum
New contributor
New contributor
New contributor
asked 8 hours ago
intrepidisintrepidis
1112
1112
New contributor
New contributor
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The MC68000 can take up to 70 clock cycles to multiply.
The ZX Spectrum Next's Z80N has a "mul de" instruction that always takes 8 T-States.
It's 'only' an unsigned 8x8 multiplication, as the 8 bit registers D
and E
will be multiplied and the 16 bit Result stored in DE
, while the 68k multiplications (MULS
being the signed version) is a 32x32 multiplication.
How does it do that? What is the difference between how they work?
By the Z80N MUL
being a more simple operation and at the same time throwing much more hardware at it?
The 68k MULU
/MULS
is implemented in micro code, as adding a hardware multiplier would have enlarged the CPU quite a lot.
The Spectrum Next is build using an Xilinx Spartan-6 FGPA (Type XC6SLX 16), a chip with SEVERAL TEN THOUSAND TIMES or maybe even more than HUNDRED THOUSAND TIMES (depending if the RAM is counted) the transistor count of an 68000 (which itself is already about 7 to 8 times as much as the original Z80). Easy to offer 8x8 bit hardware multipliers with a monster like that.
In fact, it's safe to assume that it could be way faster than the 8 T-States, as these seam to be in line with the RMW nature of the instruction. All to make them work out in a comparable relative timing as the real Z80. Given the hardware such an FPGA provides, eZ80 like timing or even lower can be easy archived - ofc, this would make it hard to slow it down to play timing dependant games from a real Spectrum :))
Bottom line: It's simply the result of 40 years of Moore's Law.
1
I'm pretty sureMULU
andMULS
are available only in 16x16 form on the original 68000. The 32-bit forms are from the 68020 onwards. I wish I had more to contribute than this, but you've covered everything else comprehensively as ever.
– Tommy
7 hours ago
In fact the z80n multiply can complete in a single 28MHz cycle which is the top clock speed in the system. The 8T time is solely due to the opcode fetch of two bytes which must take that amount of time in a z80 system. As already mentioned, it is moore's law in action. When the 68k was made they likely did not want to spend a lot of space on a single cycle hardware multiply and instead performed the operation as a sequence of steps using less hardware which took more time.
– aralbrec
2 hours ago
While the spartan 6 likely has (at an educated guess) 15000 times as many transistors as a 68k, it's not true the transistor count is directly comparable. In an fpga, the transistors are used to implement a generic logic fabric as well as hold configuration information in sram cells, control routing with pass transistors, and so on. In short a lot of transistors are not being applied to directly implement the logic. Because the logic is generic, only a fraction of the logic is actually useful in a completed design.
– aralbrec
33 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
);
);
intrepidis 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
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f11188%2fz80n-multiply-compared-to-mc68000%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
The MC68000 can take up to 70 clock cycles to multiply.
The ZX Spectrum Next's Z80N has a "mul de" instruction that always takes 8 T-States.
It's 'only' an unsigned 8x8 multiplication, as the 8 bit registers D
and E
will be multiplied and the 16 bit Result stored in DE
, while the 68k multiplications (MULS
being the signed version) is a 32x32 multiplication.
How does it do that? What is the difference between how they work?
By the Z80N MUL
being a more simple operation and at the same time throwing much more hardware at it?
The 68k MULU
/MULS
is implemented in micro code, as adding a hardware multiplier would have enlarged the CPU quite a lot.
The Spectrum Next is build using an Xilinx Spartan-6 FGPA (Type XC6SLX 16), a chip with SEVERAL TEN THOUSAND TIMES or maybe even more than HUNDRED THOUSAND TIMES (depending if the RAM is counted) the transistor count of an 68000 (which itself is already about 7 to 8 times as much as the original Z80). Easy to offer 8x8 bit hardware multipliers with a monster like that.
In fact, it's safe to assume that it could be way faster than the 8 T-States, as these seam to be in line with the RMW nature of the instruction. All to make them work out in a comparable relative timing as the real Z80. Given the hardware such an FPGA provides, eZ80 like timing or even lower can be easy archived - ofc, this would make it hard to slow it down to play timing dependant games from a real Spectrum :))
Bottom line: It's simply the result of 40 years of Moore's Law.
1
I'm pretty sureMULU
andMULS
are available only in 16x16 form on the original 68000. The 32-bit forms are from the 68020 onwards. I wish I had more to contribute than this, but you've covered everything else comprehensively as ever.
– Tommy
7 hours ago
In fact the z80n multiply can complete in a single 28MHz cycle which is the top clock speed in the system. The 8T time is solely due to the opcode fetch of two bytes which must take that amount of time in a z80 system. As already mentioned, it is moore's law in action. When the 68k was made they likely did not want to spend a lot of space on a single cycle hardware multiply and instead performed the operation as a sequence of steps using less hardware which took more time.
– aralbrec
2 hours ago
While the spartan 6 likely has (at an educated guess) 15000 times as many transistors as a 68k, it's not true the transistor count is directly comparable. In an fpga, the transistors are used to implement a generic logic fabric as well as hold configuration information in sram cells, control routing with pass transistors, and so on. In short a lot of transistors are not being applied to directly implement the logic. Because the logic is generic, only a fraction of the logic is actually useful in a completed design.
– aralbrec
33 mins ago
add a comment |
The MC68000 can take up to 70 clock cycles to multiply.
The ZX Spectrum Next's Z80N has a "mul de" instruction that always takes 8 T-States.
It's 'only' an unsigned 8x8 multiplication, as the 8 bit registers D
and E
will be multiplied and the 16 bit Result stored in DE
, while the 68k multiplications (MULS
being the signed version) is a 32x32 multiplication.
How does it do that? What is the difference between how they work?
By the Z80N MUL
being a more simple operation and at the same time throwing much more hardware at it?
The 68k MULU
/MULS
is implemented in micro code, as adding a hardware multiplier would have enlarged the CPU quite a lot.
The Spectrum Next is build using an Xilinx Spartan-6 FGPA (Type XC6SLX 16), a chip with SEVERAL TEN THOUSAND TIMES or maybe even more than HUNDRED THOUSAND TIMES (depending if the RAM is counted) the transistor count of an 68000 (which itself is already about 7 to 8 times as much as the original Z80). Easy to offer 8x8 bit hardware multipliers with a monster like that.
In fact, it's safe to assume that it could be way faster than the 8 T-States, as these seam to be in line with the RMW nature of the instruction. All to make them work out in a comparable relative timing as the real Z80. Given the hardware such an FPGA provides, eZ80 like timing or even lower can be easy archived - ofc, this would make it hard to slow it down to play timing dependant games from a real Spectrum :))
Bottom line: It's simply the result of 40 years of Moore's Law.
1
I'm pretty sureMULU
andMULS
are available only in 16x16 form on the original 68000. The 32-bit forms are from the 68020 onwards. I wish I had more to contribute than this, but you've covered everything else comprehensively as ever.
– Tommy
7 hours ago
In fact the z80n multiply can complete in a single 28MHz cycle which is the top clock speed in the system. The 8T time is solely due to the opcode fetch of two bytes which must take that amount of time in a z80 system. As already mentioned, it is moore's law in action. When the 68k was made they likely did not want to spend a lot of space on a single cycle hardware multiply and instead performed the operation as a sequence of steps using less hardware which took more time.
– aralbrec
2 hours ago
While the spartan 6 likely has (at an educated guess) 15000 times as many transistors as a 68k, it's not true the transistor count is directly comparable. In an fpga, the transistors are used to implement a generic logic fabric as well as hold configuration information in sram cells, control routing with pass transistors, and so on. In short a lot of transistors are not being applied to directly implement the logic. Because the logic is generic, only a fraction of the logic is actually useful in a completed design.
– aralbrec
33 mins ago
add a comment |
The MC68000 can take up to 70 clock cycles to multiply.
The ZX Spectrum Next's Z80N has a "mul de" instruction that always takes 8 T-States.
It's 'only' an unsigned 8x8 multiplication, as the 8 bit registers D
and E
will be multiplied and the 16 bit Result stored in DE
, while the 68k multiplications (MULS
being the signed version) is a 32x32 multiplication.
How does it do that? What is the difference between how they work?
By the Z80N MUL
being a more simple operation and at the same time throwing much more hardware at it?
The 68k MULU
/MULS
is implemented in micro code, as adding a hardware multiplier would have enlarged the CPU quite a lot.
The Spectrum Next is build using an Xilinx Spartan-6 FGPA (Type XC6SLX 16), a chip with SEVERAL TEN THOUSAND TIMES or maybe even more than HUNDRED THOUSAND TIMES (depending if the RAM is counted) the transistor count of an 68000 (which itself is already about 7 to 8 times as much as the original Z80). Easy to offer 8x8 bit hardware multipliers with a monster like that.
In fact, it's safe to assume that it could be way faster than the 8 T-States, as these seam to be in line with the RMW nature of the instruction. All to make them work out in a comparable relative timing as the real Z80. Given the hardware such an FPGA provides, eZ80 like timing or even lower can be easy archived - ofc, this would make it hard to slow it down to play timing dependant games from a real Spectrum :))
Bottom line: It's simply the result of 40 years of Moore's Law.
The MC68000 can take up to 70 clock cycles to multiply.
The ZX Spectrum Next's Z80N has a "mul de" instruction that always takes 8 T-States.
It's 'only' an unsigned 8x8 multiplication, as the 8 bit registers D
and E
will be multiplied and the 16 bit Result stored in DE
, while the 68k multiplications (MULS
being the signed version) is a 32x32 multiplication.
How does it do that? What is the difference between how they work?
By the Z80N MUL
being a more simple operation and at the same time throwing much more hardware at it?
The 68k MULU
/MULS
is implemented in micro code, as adding a hardware multiplier would have enlarged the CPU quite a lot.
The Spectrum Next is build using an Xilinx Spartan-6 FGPA (Type XC6SLX 16), a chip with SEVERAL TEN THOUSAND TIMES or maybe even more than HUNDRED THOUSAND TIMES (depending if the RAM is counted) the transistor count of an 68000 (which itself is already about 7 to 8 times as much as the original Z80). Easy to offer 8x8 bit hardware multipliers with a monster like that.
In fact, it's safe to assume that it could be way faster than the 8 T-States, as these seam to be in line with the RMW nature of the instruction. All to make them work out in a comparable relative timing as the real Z80. Given the hardware such an FPGA provides, eZ80 like timing or even lower can be easy archived - ofc, this would make it hard to slow it down to play timing dependant games from a real Spectrum :))
Bottom line: It's simply the result of 40 years of Moore's Law.
edited 8 hours ago
answered 8 hours ago
RaffzahnRaffzahn
59.5k6147245
59.5k6147245
1
I'm pretty sureMULU
andMULS
are available only in 16x16 form on the original 68000. The 32-bit forms are from the 68020 onwards. I wish I had more to contribute than this, but you've covered everything else comprehensively as ever.
– Tommy
7 hours ago
In fact the z80n multiply can complete in a single 28MHz cycle which is the top clock speed in the system. The 8T time is solely due to the opcode fetch of two bytes which must take that amount of time in a z80 system. As already mentioned, it is moore's law in action. When the 68k was made they likely did not want to spend a lot of space on a single cycle hardware multiply and instead performed the operation as a sequence of steps using less hardware which took more time.
– aralbrec
2 hours ago
While the spartan 6 likely has (at an educated guess) 15000 times as many transistors as a 68k, it's not true the transistor count is directly comparable. In an fpga, the transistors are used to implement a generic logic fabric as well as hold configuration information in sram cells, control routing with pass transistors, and so on. In short a lot of transistors are not being applied to directly implement the logic. Because the logic is generic, only a fraction of the logic is actually useful in a completed design.
– aralbrec
33 mins ago
add a comment |
1
I'm pretty sureMULU
andMULS
are available only in 16x16 form on the original 68000. The 32-bit forms are from the 68020 onwards. I wish I had more to contribute than this, but you've covered everything else comprehensively as ever.
– Tommy
7 hours ago
In fact the z80n multiply can complete in a single 28MHz cycle which is the top clock speed in the system. The 8T time is solely due to the opcode fetch of two bytes which must take that amount of time in a z80 system. As already mentioned, it is moore's law in action. When the 68k was made they likely did not want to spend a lot of space on a single cycle hardware multiply and instead performed the operation as a sequence of steps using less hardware which took more time.
– aralbrec
2 hours ago
While the spartan 6 likely has (at an educated guess) 15000 times as many transistors as a 68k, it's not true the transistor count is directly comparable. In an fpga, the transistors are used to implement a generic logic fabric as well as hold configuration information in sram cells, control routing with pass transistors, and so on. In short a lot of transistors are not being applied to directly implement the logic. Because the logic is generic, only a fraction of the logic is actually useful in a completed design.
– aralbrec
33 mins ago
1
1
I'm pretty sure
MULU
and MULS
are available only in 16x16 form on the original 68000. The 32-bit forms are from the 68020 onwards. I wish I had more to contribute than this, but you've covered everything else comprehensively as ever.– Tommy
7 hours ago
I'm pretty sure
MULU
and MULS
are available only in 16x16 form on the original 68000. The 32-bit forms are from the 68020 onwards. I wish I had more to contribute than this, but you've covered everything else comprehensively as ever.– Tommy
7 hours ago
In fact the z80n multiply can complete in a single 28MHz cycle which is the top clock speed in the system. The 8T time is solely due to the opcode fetch of two bytes which must take that amount of time in a z80 system. As already mentioned, it is moore's law in action. When the 68k was made they likely did not want to spend a lot of space on a single cycle hardware multiply and instead performed the operation as a sequence of steps using less hardware which took more time.
– aralbrec
2 hours ago
In fact the z80n multiply can complete in a single 28MHz cycle which is the top clock speed in the system. The 8T time is solely due to the opcode fetch of two bytes which must take that amount of time in a z80 system. As already mentioned, it is moore's law in action. When the 68k was made they likely did not want to spend a lot of space on a single cycle hardware multiply and instead performed the operation as a sequence of steps using less hardware which took more time.
– aralbrec
2 hours ago
While the spartan 6 likely has (at an educated guess) 15000 times as many transistors as a 68k, it's not true the transistor count is directly comparable. In an fpga, the transistors are used to implement a generic logic fabric as well as hold configuration information in sram cells, control routing with pass transistors, and so on. In short a lot of transistors are not being applied to directly implement the logic. Because the logic is generic, only a fraction of the logic is actually useful in a completed design.
– aralbrec
33 mins ago
While the spartan 6 likely has (at an educated guess) 15000 times as many transistors as a 68k, it's not true the transistor count is directly comparable. In an fpga, the transistors are used to implement a generic logic fabric as well as hold configuration information in sram cells, control routing with pass transistors, and so on. In short a lot of transistors are not being applied to directly implement the logic. Because the logic is generic, only a fraction of the logic is actually useful in a completed design.
– aralbrec
33 mins ago
add a comment |
intrepidis is a new contributor. Be nice, and check out our Code of Conduct.
intrepidis is a new contributor. Be nice, and check out our Code of Conduct.
intrepidis is a new contributor. Be nice, and check out our Code of Conduct.
intrepidis is a new contributor. Be nice, and check out our Code of Conduct.
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%2f11188%2fz80n-multiply-compared-to-mc68000%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