What is the purpose of the É register of the ÑÃÂáÜ-6?
Clash Royale CLAN TAG#URR8PPP
up vote
6
down vote
favorite
This page describing the ÑÃÂáÜ-6 instruction set refers to a value called É, which is stored inside a Mode Register. It appears to be set by certain kinds of instructions, so that É can tell you which of the last executed multiply and the last executed addition and the last executed subtraction was executed last. Kind of like how the Z80 has a bit that says whether an addition or subtraction happened last and is useful for the "decimal adjustment" operation.
Now the ÑÃÂáÜ-6 has a Young Bits register1 and the precise semantics of fetching Young Bits into Accumulator depend on what's inside É.
Now the ÑÃÂáÜ-6 has a Branch if Zero instruction and correspondingly a Branch if Not Zero instruction, and the thing which determines what "Zero" is2 is some kind of calculation based on the value É.
I'm finding this whole business kind of bizarre and hard to grok. So my question is basically "what's going on here?". Can you explain why Zero is not 0
and why this depends on É and why loading Young Bits also depends on É?
And bonus points also if you know the etymology. I have exactly no idea why this thing should be denoted by É, the lower case omega.
1 Presumably, it's called Young Bits in this particular document because it's sometimes treated as an extension of the accumulator and the Russian word üûðôшøù can mean "younger" and the same word also can mean "least significant" when talking about bits/bytes/digits, but I'm not aware that this use of the English word "younger" is in widespread use.
2 A hint: This Zero condition does not mean that Accumulator is numerically zero.
instruction-set besm-6
 |Â
show 4 more comments
up vote
6
down vote
favorite
This page describing the ÑÃÂáÜ-6 instruction set refers to a value called É, which is stored inside a Mode Register. It appears to be set by certain kinds of instructions, so that É can tell you which of the last executed multiply and the last executed addition and the last executed subtraction was executed last. Kind of like how the Z80 has a bit that says whether an addition or subtraction happened last and is useful for the "decimal adjustment" operation.
Now the ÑÃÂáÜ-6 has a Young Bits register1 and the precise semantics of fetching Young Bits into Accumulator depend on what's inside É.
Now the ÑÃÂáÜ-6 has a Branch if Zero instruction and correspondingly a Branch if Not Zero instruction, and the thing which determines what "Zero" is2 is some kind of calculation based on the value É.
I'm finding this whole business kind of bizarre and hard to grok. So my question is basically "what's going on here?". Can you explain why Zero is not 0
and why this depends on É and why loading Young Bits also depends on É?
And bonus points also if you know the etymology. I have exactly no idea why this thing should be denoted by É, the lower case omega.
1 Presumably, it's called Young Bits in this particular document because it's sometimes treated as an extension of the accumulator and the Russian word üûðôшøù can mean "younger" and the same word also can mean "least significant" when talking about bits/bytes/digits, but I'm not aware that this use of the English word "younger" is in widespread use.
2 A hint: This Zero condition does not mean that Accumulator is numerically zero.
instruction-set besm-6
I had no idea how to tag it so i created besm6.
– Wilson
Aug 28 at 10:56
1
Quick shot: These are all floating point numbers, and additive/multiplicative operations seem to do rounding/normalization differently, therefore different bits represent a "zero" condition (which is fuzzy in FP, anyway). One would need more details about how rounding/normalization is handled by the instructions. The emulator source code may help.
– dirkt
Aug 28 at 11:47
1
@wizzwizz4 Thanks. Transliteration is a complicated topic, but at least SIMH and IIRC a few others call it besm6.
– Wilson
Aug 28 at 12:04
3
The transliteration is correct - Lucky for us all four letters have only a single latin equivalent :))
– Raffzahn
Aug 28 at 12:09
1
"Younger bits" meaning "least-significant bits" is not widespread but apparently understood in context. It can be found, for example, in an RFC. OTOH, "young bits" is a term related to branch prediction.
– Leo B.
Aug 28 at 18:53
 |Â
show 4 more comments
up vote
6
down vote
favorite
up vote
6
down vote
favorite
This page describing the ÑÃÂáÜ-6 instruction set refers to a value called É, which is stored inside a Mode Register. It appears to be set by certain kinds of instructions, so that É can tell you which of the last executed multiply and the last executed addition and the last executed subtraction was executed last. Kind of like how the Z80 has a bit that says whether an addition or subtraction happened last and is useful for the "decimal adjustment" operation.
Now the ÑÃÂáÜ-6 has a Young Bits register1 and the precise semantics of fetching Young Bits into Accumulator depend on what's inside É.
Now the ÑÃÂáÜ-6 has a Branch if Zero instruction and correspondingly a Branch if Not Zero instruction, and the thing which determines what "Zero" is2 is some kind of calculation based on the value É.
I'm finding this whole business kind of bizarre and hard to grok. So my question is basically "what's going on here?". Can you explain why Zero is not 0
and why this depends on É and why loading Young Bits also depends on É?
And bonus points also if you know the etymology. I have exactly no idea why this thing should be denoted by É, the lower case omega.
1 Presumably, it's called Young Bits in this particular document because it's sometimes treated as an extension of the accumulator and the Russian word üûðôшøù can mean "younger" and the same word also can mean "least significant" when talking about bits/bytes/digits, but I'm not aware that this use of the English word "younger" is in widespread use.
2 A hint: This Zero condition does not mean that Accumulator is numerically zero.
instruction-set besm-6
This page describing the ÑÃÂáÜ-6 instruction set refers to a value called É, which is stored inside a Mode Register. It appears to be set by certain kinds of instructions, so that É can tell you which of the last executed multiply and the last executed addition and the last executed subtraction was executed last. Kind of like how the Z80 has a bit that says whether an addition or subtraction happened last and is useful for the "decimal adjustment" operation.
Now the ÑÃÂáÜ-6 has a Young Bits register1 and the precise semantics of fetching Young Bits into Accumulator depend on what's inside É.
Now the ÑÃÂáÜ-6 has a Branch if Zero instruction and correspondingly a Branch if Not Zero instruction, and the thing which determines what "Zero" is2 is some kind of calculation based on the value É.
I'm finding this whole business kind of bizarre and hard to grok. So my question is basically "what's going on here?". Can you explain why Zero is not 0
and why this depends on É and why loading Young Bits also depends on É?
And bonus points also if you know the etymology. I have exactly no idea why this thing should be denoted by É, the lower case omega.
1 Presumably, it's called Young Bits in this particular document because it's sometimes treated as an extension of the accumulator and the Russian word üûðôшøù can mean "younger" and the same word also can mean "least significant" when talking about bits/bytes/digits, but I'm not aware that this use of the English word "younger" is in widespread use.
2 A hint: This Zero condition does not mean that Accumulator is numerically zero.
instruction-set besm-6
edited Aug 28 at 15:52
asked Aug 28 at 10:56
Wilson
8,129436102
8,129436102
I had no idea how to tag it so i created besm6.
– Wilson
Aug 28 at 10:56
1
Quick shot: These are all floating point numbers, and additive/multiplicative operations seem to do rounding/normalization differently, therefore different bits represent a "zero" condition (which is fuzzy in FP, anyway). One would need more details about how rounding/normalization is handled by the instructions. The emulator source code may help.
– dirkt
Aug 28 at 11:47
1
@wizzwizz4 Thanks. Transliteration is a complicated topic, but at least SIMH and IIRC a few others call it besm6.
– Wilson
Aug 28 at 12:04
3
The transliteration is correct - Lucky for us all four letters have only a single latin equivalent :))
– Raffzahn
Aug 28 at 12:09
1
"Younger bits" meaning "least-significant bits" is not widespread but apparently understood in context. It can be found, for example, in an RFC. OTOH, "young bits" is a term related to branch prediction.
– Leo B.
Aug 28 at 18:53
 |Â
show 4 more comments
I had no idea how to tag it so i created besm6.
– Wilson
Aug 28 at 10:56
1
Quick shot: These are all floating point numbers, and additive/multiplicative operations seem to do rounding/normalization differently, therefore different bits represent a "zero" condition (which is fuzzy in FP, anyway). One would need more details about how rounding/normalization is handled by the instructions. The emulator source code may help.
– dirkt
Aug 28 at 11:47
1
@wizzwizz4 Thanks. Transliteration is a complicated topic, but at least SIMH and IIRC a few others call it besm6.
– Wilson
Aug 28 at 12:04
3
The transliteration is correct - Lucky for us all four letters have only a single latin equivalent :))
– Raffzahn
Aug 28 at 12:09
1
"Younger bits" meaning "least-significant bits" is not widespread but apparently understood in context. It can be found, for example, in an RFC. OTOH, "young bits" is a term related to branch prediction.
– Leo B.
Aug 28 at 18:53
I had no idea how to tag it so i created besm6.
– Wilson
Aug 28 at 10:56
I had no idea how to tag it so i created besm6.
– Wilson
Aug 28 at 10:56
1
1
Quick shot: These are all floating point numbers, and additive/multiplicative operations seem to do rounding/normalization differently, therefore different bits represent a "zero" condition (which is fuzzy in FP, anyway). One would need more details about how rounding/normalization is handled by the instructions. The emulator source code may help.
– dirkt
Aug 28 at 11:47
Quick shot: These are all floating point numbers, and additive/multiplicative operations seem to do rounding/normalization differently, therefore different bits represent a "zero" condition (which is fuzzy in FP, anyway). One would need more details about how rounding/normalization is handled by the instructions. The emulator source code may help.
– dirkt
Aug 28 at 11:47
1
1
@wizzwizz4 Thanks. Transliteration is a complicated topic, but at least SIMH and IIRC a few others call it besm6.
– Wilson
Aug 28 at 12:04
@wizzwizz4 Thanks. Transliteration is a complicated topic, but at least SIMH and IIRC a few others call it besm6.
– Wilson
Aug 28 at 12:04
3
3
The transliteration is correct - Lucky for us all four letters have only a single latin equivalent :))
– Raffzahn
Aug 28 at 12:09
The transliteration is correct - Lucky for us all four letters have only a single latin equivalent :))
– Raffzahn
Aug 28 at 12:09
1
1
"Younger bits" meaning "least-significant bits" is not widespread but apparently understood in context. It can be found, for example, in an RFC. OTOH, "young bits" is a term related to branch prediction.
– Leo B.
Aug 28 at 18:53
"Younger bits" meaning "least-significant bits" is not widespread but apparently understood in context. It can be found, for example, in an RFC. OTOH, "young bits" is a term related to branch prediction.
– Leo B.
Aug 28 at 18:53
 |Â
show 4 more comments
2 Answers
2
active
oldest
votes
up vote
5
down vote
accepted
I'm finding this whole business kind of bizarre and hard to grok. So my question is basically "what's going on here?".
It's a way to save on special case jump instructions. Or more general, to adapt certain instructions to work as needed due to prior executed ones. I guess today we would cover this on a programming level with a bunch of macro opcodes which then generate appropriate opcode pairs.
Can you explain why Zero is not 0 and why this depends on É
Zero as a name is more of a placeholder and in only true to its name for logical zero tests. Omega saves what the last operation was. Multiply, Additive or Logical. The Branch (Not) Zero
instruction uses Omega to determine what to check.
- All 48 bits to be zero when Omega is logical - much like a test for zero on canonical CPUs
- The sign (Bit 41) for being zero (positive) when Omega is additive - Test for positive/negative result
- The highest bit of the exponent (Bit 48) for being one when Omega marks a prior multiply - Effectively testing for overflow.
Bottom line: Only two branch instructions are needed to test three different conditions, depending on what prior operation happened.
and why loading Young Bits also depends on É?
Because YTA is eventually (like Zero) not really describing the whole meaning? YTA is meant to bring the second 'half' of a prior result into A. In case of logical operation Y contains this, so all bits of Y are transferred to A. In all other (arithmetic) instructions the 'second value' is in Z, so YTA is transferring Z to A - or more exactly, the 40 bits of Z are moved while the rest is set according to the instructions EA to make it a FP value.
Bottom Line: Instead of two move instruction only one needs to be encoded, selecting the right source depending on what prior instruction happened
1
So Zero is just a matter of a poorly chosen name, either in the English translation or of course in the Russian original. A better name, if a little verbose, might have been "condition you might find it useful to be able to check for".
– Wilson
Aug 28 at 14:12
2
@Wilson The instruction which performs a jump when É is Logical and all bits of ACC are equal to 0 is rightfully called "branch when 0" (UZA). Consequently, all other combinations of conditions chosen to cause the UZA instruction to branch are called "zero".
– Leo B.
Aug 28 at 15:25
add a comment |Â
up vote
3
down vote
As a matter of fact, the page you refer to, which was authored by me a long time ago, is somewhat incorrect, and bases its notation on a colloquial use of É.
In the original documentation É is the name of the 1-bit signal generated by the arithmetic unit and consumed by the control unit. The UZA
instruction takes the branch when É=0.
The 3-bit field in the R register which is called É on the page, should be properly called "instruction group attributes". My excuse is that the names of these three signals in the documentation do include É:
ãßÉÛ, ãßÉß, ãßÉÜ, which can be glossed as "Control Attribute É Logical", "Control Attribute É Exponent", "Control Attribute É Mantissa".
Colloquially, "É is Logical" means "At the moment, the signal ãßÉÛ is high, and the observed value of É had been computed according to the Logical mode rule".
I'm afraid that the etymology of É is lost in the sands of time. The available BESM-6 documentation doesn't mention it.
The Latin-based instruction mnemonics had been devised in the Joint Institute for Nuclear Research with a multi-lingual cadre of researchers from various countries; as the extension register of the accumulator (A) was called Y (and not, say, B for the next letter of the alphabet, or L for the "least-significant bits"), it is likely that the choice of the mnemonic based on the term "young(er) bits" was well-understood and well-accepted.
The YTA
instruction in the Logical mode is a regular move instruction, and in the "arithmetic" (Additive or Multiplicative) modes it moves just the mantissa bits. That behavior is mostly (or only) geared toward facilitating extended precision arithmetic.
Also note that there is no explicit opposite instruction (ATY
); moving the accumulator to the Y register is achieved as a side effect of the AEX
(exclusive OR) instruction.
"the page you refer to, which was authored by me a long time ago" Why I'm not surprised? :))
– Raffzahn
Aug 28 at 20:57
Leo B. How do you know so much about this? Are you Russian or do you understand Russian?
– Wilson
Aug 29 at 7:58
@Wilson I'm Russian. I've just updated the instruction set page; please see if it makes more sense now.
– Leo B.
Aug 29 at 8:42
1
@Raffzahn :) I've carefully avoided inserting vanity links when asking my BESM-6 related questions.
– Leo B.
Aug 29 at 8:43
add a comment |Â
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
5
down vote
accepted
I'm finding this whole business kind of bizarre and hard to grok. So my question is basically "what's going on here?".
It's a way to save on special case jump instructions. Or more general, to adapt certain instructions to work as needed due to prior executed ones. I guess today we would cover this on a programming level with a bunch of macro opcodes which then generate appropriate opcode pairs.
Can you explain why Zero is not 0 and why this depends on É
Zero as a name is more of a placeholder and in only true to its name for logical zero tests. Omega saves what the last operation was. Multiply, Additive or Logical. The Branch (Not) Zero
instruction uses Omega to determine what to check.
- All 48 bits to be zero when Omega is logical - much like a test for zero on canonical CPUs
- The sign (Bit 41) for being zero (positive) when Omega is additive - Test for positive/negative result
- The highest bit of the exponent (Bit 48) for being one when Omega marks a prior multiply - Effectively testing for overflow.
Bottom line: Only two branch instructions are needed to test three different conditions, depending on what prior operation happened.
and why loading Young Bits also depends on É?
Because YTA is eventually (like Zero) not really describing the whole meaning? YTA is meant to bring the second 'half' of a prior result into A. In case of logical operation Y contains this, so all bits of Y are transferred to A. In all other (arithmetic) instructions the 'second value' is in Z, so YTA is transferring Z to A - or more exactly, the 40 bits of Z are moved while the rest is set according to the instructions EA to make it a FP value.
Bottom Line: Instead of two move instruction only one needs to be encoded, selecting the right source depending on what prior instruction happened
1
So Zero is just a matter of a poorly chosen name, either in the English translation or of course in the Russian original. A better name, if a little verbose, might have been "condition you might find it useful to be able to check for".
– Wilson
Aug 28 at 14:12
2
@Wilson The instruction which performs a jump when É is Logical and all bits of ACC are equal to 0 is rightfully called "branch when 0" (UZA). Consequently, all other combinations of conditions chosen to cause the UZA instruction to branch are called "zero".
– Leo B.
Aug 28 at 15:25
add a comment |Â
up vote
5
down vote
accepted
I'm finding this whole business kind of bizarre and hard to grok. So my question is basically "what's going on here?".
It's a way to save on special case jump instructions. Or more general, to adapt certain instructions to work as needed due to prior executed ones. I guess today we would cover this on a programming level with a bunch of macro opcodes which then generate appropriate opcode pairs.
Can you explain why Zero is not 0 and why this depends on É
Zero as a name is more of a placeholder and in only true to its name for logical zero tests. Omega saves what the last operation was. Multiply, Additive or Logical. The Branch (Not) Zero
instruction uses Omega to determine what to check.
- All 48 bits to be zero when Omega is logical - much like a test for zero on canonical CPUs
- The sign (Bit 41) for being zero (positive) when Omega is additive - Test for positive/negative result
- The highest bit of the exponent (Bit 48) for being one when Omega marks a prior multiply - Effectively testing for overflow.
Bottom line: Only two branch instructions are needed to test three different conditions, depending on what prior operation happened.
and why loading Young Bits also depends on É?
Because YTA is eventually (like Zero) not really describing the whole meaning? YTA is meant to bring the second 'half' of a prior result into A. In case of logical operation Y contains this, so all bits of Y are transferred to A. In all other (arithmetic) instructions the 'second value' is in Z, so YTA is transferring Z to A - or more exactly, the 40 bits of Z are moved while the rest is set according to the instructions EA to make it a FP value.
Bottom Line: Instead of two move instruction only one needs to be encoded, selecting the right source depending on what prior instruction happened
1
So Zero is just a matter of a poorly chosen name, either in the English translation or of course in the Russian original. A better name, if a little verbose, might have been "condition you might find it useful to be able to check for".
– Wilson
Aug 28 at 14:12
2
@Wilson The instruction which performs a jump when É is Logical and all bits of ACC are equal to 0 is rightfully called "branch when 0" (UZA). Consequently, all other combinations of conditions chosen to cause the UZA instruction to branch are called "zero".
– Leo B.
Aug 28 at 15:25
add a comment |Â
up vote
5
down vote
accepted
up vote
5
down vote
accepted
I'm finding this whole business kind of bizarre and hard to grok. So my question is basically "what's going on here?".
It's a way to save on special case jump instructions. Or more general, to adapt certain instructions to work as needed due to prior executed ones. I guess today we would cover this on a programming level with a bunch of macro opcodes which then generate appropriate opcode pairs.
Can you explain why Zero is not 0 and why this depends on É
Zero as a name is more of a placeholder and in only true to its name for logical zero tests. Omega saves what the last operation was. Multiply, Additive or Logical. The Branch (Not) Zero
instruction uses Omega to determine what to check.
- All 48 bits to be zero when Omega is logical - much like a test for zero on canonical CPUs
- The sign (Bit 41) for being zero (positive) when Omega is additive - Test for positive/negative result
- The highest bit of the exponent (Bit 48) for being one when Omega marks a prior multiply - Effectively testing for overflow.
Bottom line: Only two branch instructions are needed to test three different conditions, depending on what prior operation happened.
and why loading Young Bits also depends on É?
Because YTA is eventually (like Zero) not really describing the whole meaning? YTA is meant to bring the second 'half' of a prior result into A. In case of logical operation Y contains this, so all bits of Y are transferred to A. In all other (arithmetic) instructions the 'second value' is in Z, so YTA is transferring Z to A - or more exactly, the 40 bits of Z are moved while the rest is set according to the instructions EA to make it a FP value.
Bottom Line: Instead of two move instruction only one needs to be encoded, selecting the right source depending on what prior instruction happened
I'm finding this whole business kind of bizarre and hard to grok. So my question is basically "what's going on here?".
It's a way to save on special case jump instructions. Or more general, to adapt certain instructions to work as needed due to prior executed ones. I guess today we would cover this on a programming level with a bunch of macro opcodes which then generate appropriate opcode pairs.
Can you explain why Zero is not 0 and why this depends on É
Zero as a name is more of a placeholder and in only true to its name for logical zero tests. Omega saves what the last operation was. Multiply, Additive or Logical. The Branch (Not) Zero
instruction uses Omega to determine what to check.
- All 48 bits to be zero when Omega is logical - much like a test for zero on canonical CPUs
- The sign (Bit 41) for being zero (positive) when Omega is additive - Test for positive/negative result
- The highest bit of the exponent (Bit 48) for being one when Omega marks a prior multiply - Effectively testing for overflow.
Bottom line: Only two branch instructions are needed to test three different conditions, depending on what prior operation happened.
and why loading Young Bits also depends on É?
Because YTA is eventually (like Zero) not really describing the whole meaning? YTA is meant to bring the second 'half' of a prior result into A. In case of logical operation Y contains this, so all bits of Y are transferred to A. In all other (arithmetic) instructions the 'second value' is in Z, so YTA is transferring Z to A - or more exactly, the 40 bits of Z are moved while the rest is set according to the instructions EA to make it a FP value.
Bottom Line: Instead of two move instruction only one needs to be encoded, selecting the right source depending on what prior instruction happened
edited Aug 28 at 15:14
Leo B.
5,86332265
5,86332265
answered Aug 28 at 12:07


Raffzahn
32.5k471129
32.5k471129
1
So Zero is just a matter of a poorly chosen name, either in the English translation or of course in the Russian original. A better name, if a little verbose, might have been "condition you might find it useful to be able to check for".
– Wilson
Aug 28 at 14:12
2
@Wilson The instruction which performs a jump when É is Logical and all bits of ACC are equal to 0 is rightfully called "branch when 0" (UZA). Consequently, all other combinations of conditions chosen to cause the UZA instruction to branch are called "zero".
– Leo B.
Aug 28 at 15:25
add a comment |Â
1
So Zero is just a matter of a poorly chosen name, either in the English translation or of course in the Russian original. A better name, if a little verbose, might have been "condition you might find it useful to be able to check for".
– Wilson
Aug 28 at 14:12
2
@Wilson The instruction which performs a jump when É is Logical and all bits of ACC are equal to 0 is rightfully called "branch when 0" (UZA). Consequently, all other combinations of conditions chosen to cause the UZA instruction to branch are called "zero".
– Leo B.
Aug 28 at 15:25
1
1
So Zero is just a matter of a poorly chosen name, either in the English translation or of course in the Russian original. A better name, if a little verbose, might have been "condition you might find it useful to be able to check for".
– Wilson
Aug 28 at 14:12
So Zero is just a matter of a poorly chosen name, either in the English translation or of course in the Russian original. A better name, if a little verbose, might have been "condition you might find it useful to be able to check for".
– Wilson
Aug 28 at 14:12
2
2
@Wilson The instruction which performs a jump when É is Logical and all bits of ACC are equal to 0 is rightfully called "branch when 0" (UZA). Consequently, all other combinations of conditions chosen to cause the UZA instruction to branch are called "zero".
– Leo B.
Aug 28 at 15:25
@Wilson The instruction which performs a jump when É is Logical and all bits of ACC are equal to 0 is rightfully called "branch when 0" (UZA). Consequently, all other combinations of conditions chosen to cause the UZA instruction to branch are called "zero".
– Leo B.
Aug 28 at 15:25
add a comment |Â
up vote
3
down vote
As a matter of fact, the page you refer to, which was authored by me a long time ago, is somewhat incorrect, and bases its notation on a colloquial use of É.
In the original documentation É is the name of the 1-bit signal generated by the arithmetic unit and consumed by the control unit. The UZA
instruction takes the branch when É=0.
The 3-bit field in the R register which is called É on the page, should be properly called "instruction group attributes". My excuse is that the names of these three signals in the documentation do include É:
ãßÉÛ, ãßÉß, ãßÉÜ, which can be glossed as "Control Attribute É Logical", "Control Attribute É Exponent", "Control Attribute É Mantissa".
Colloquially, "É is Logical" means "At the moment, the signal ãßÉÛ is high, and the observed value of É had been computed according to the Logical mode rule".
I'm afraid that the etymology of É is lost in the sands of time. The available BESM-6 documentation doesn't mention it.
The Latin-based instruction mnemonics had been devised in the Joint Institute for Nuclear Research with a multi-lingual cadre of researchers from various countries; as the extension register of the accumulator (A) was called Y (and not, say, B for the next letter of the alphabet, or L for the "least-significant bits"), it is likely that the choice of the mnemonic based on the term "young(er) bits" was well-understood and well-accepted.
The YTA
instruction in the Logical mode is a regular move instruction, and in the "arithmetic" (Additive or Multiplicative) modes it moves just the mantissa bits. That behavior is mostly (or only) geared toward facilitating extended precision arithmetic.
Also note that there is no explicit opposite instruction (ATY
); moving the accumulator to the Y register is achieved as a side effect of the AEX
(exclusive OR) instruction.
"the page you refer to, which was authored by me a long time ago" Why I'm not surprised? :))
– Raffzahn
Aug 28 at 20:57
Leo B. How do you know so much about this? Are you Russian or do you understand Russian?
– Wilson
Aug 29 at 7:58
@Wilson I'm Russian. I've just updated the instruction set page; please see if it makes more sense now.
– Leo B.
Aug 29 at 8:42
1
@Raffzahn :) I've carefully avoided inserting vanity links when asking my BESM-6 related questions.
– Leo B.
Aug 29 at 8:43
add a comment |Â
up vote
3
down vote
As a matter of fact, the page you refer to, which was authored by me a long time ago, is somewhat incorrect, and bases its notation on a colloquial use of É.
In the original documentation É is the name of the 1-bit signal generated by the arithmetic unit and consumed by the control unit. The UZA
instruction takes the branch when É=0.
The 3-bit field in the R register which is called É on the page, should be properly called "instruction group attributes". My excuse is that the names of these three signals in the documentation do include É:
ãßÉÛ, ãßÉß, ãßÉÜ, which can be glossed as "Control Attribute É Logical", "Control Attribute É Exponent", "Control Attribute É Mantissa".
Colloquially, "É is Logical" means "At the moment, the signal ãßÉÛ is high, and the observed value of É had been computed according to the Logical mode rule".
I'm afraid that the etymology of É is lost in the sands of time. The available BESM-6 documentation doesn't mention it.
The Latin-based instruction mnemonics had been devised in the Joint Institute for Nuclear Research with a multi-lingual cadre of researchers from various countries; as the extension register of the accumulator (A) was called Y (and not, say, B for the next letter of the alphabet, or L for the "least-significant bits"), it is likely that the choice of the mnemonic based on the term "young(er) bits" was well-understood and well-accepted.
The YTA
instruction in the Logical mode is a regular move instruction, and in the "arithmetic" (Additive or Multiplicative) modes it moves just the mantissa bits. That behavior is mostly (or only) geared toward facilitating extended precision arithmetic.
Also note that there is no explicit opposite instruction (ATY
); moving the accumulator to the Y register is achieved as a side effect of the AEX
(exclusive OR) instruction.
"the page you refer to, which was authored by me a long time ago" Why I'm not surprised? :))
– Raffzahn
Aug 28 at 20:57
Leo B. How do you know so much about this? Are you Russian or do you understand Russian?
– Wilson
Aug 29 at 7:58
@Wilson I'm Russian. I've just updated the instruction set page; please see if it makes more sense now.
– Leo B.
Aug 29 at 8:42
1
@Raffzahn :) I've carefully avoided inserting vanity links when asking my BESM-6 related questions.
– Leo B.
Aug 29 at 8:43
add a comment |Â
up vote
3
down vote
up vote
3
down vote
As a matter of fact, the page you refer to, which was authored by me a long time ago, is somewhat incorrect, and bases its notation on a colloquial use of É.
In the original documentation É is the name of the 1-bit signal generated by the arithmetic unit and consumed by the control unit. The UZA
instruction takes the branch when É=0.
The 3-bit field in the R register which is called É on the page, should be properly called "instruction group attributes". My excuse is that the names of these three signals in the documentation do include É:
ãßÉÛ, ãßÉß, ãßÉÜ, which can be glossed as "Control Attribute É Logical", "Control Attribute É Exponent", "Control Attribute É Mantissa".
Colloquially, "É is Logical" means "At the moment, the signal ãßÉÛ is high, and the observed value of É had been computed according to the Logical mode rule".
I'm afraid that the etymology of É is lost in the sands of time. The available BESM-6 documentation doesn't mention it.
The Latin-based instruction mnemonics had been devised in the Joint Institute for Nuclear Research with a multi-lingual cadre of researchers from various countries; as the extension register of the accumulator (A) was called Y (and not, say, B for the next letter of the alphabet, or L for the "least-significant bits"), it is likely that the choice of the mnemonic based on the term "young(er) bits" was well-understood and well-accepted.
The YTA
instruction in the Logical mode is a regular move instruction, and in the "arithmetic" (Additive or Multiplicative) modes it moves just the mantissa bits. That behavior is mostly (or only) geared toward facilitating extended precision arithmetic.
Also note that there is no explicit opposite instruction (ATY
); moving the accumulator to the Y register is achieved as a side effect of the AEX
(exclusive OR) instruction.
As a matter of fact, the page you refer to, which was authored by me a long time ago, is somewhat incorrect, and bases its notation on a colloquial use of É.
In the original documentation É is the name of the 1-bit signal generated by the arithmetic unit and consumed by the control unit. The UZA
instruction takes the branch when É=0.
The 3-bit field in the R register which is called É on the page, should be properly called "instruction group attributes". My excuse is that the names of these three signals in the documentation do include É:
ãßÉÛ, ãßÉß, ãßÉÜ, which can be glossed as "Control Attribute É Logical", "Control Attribute É Exponent", "Control Attribute É Mantissa".
Colloquially, "É is Logical" means "At the moment, the signal ãßÉÛ is high, and the observed value of É had been computed according to the Logical mode rule".
I'm afraid that the etymology of É is lost in the sands of time. The available BESM-6 documentation doesn't mention it.
The Latin-based instruction mnemonics had been devised in the Joint Institute for Nuclear Research with a multi-lingual cadre of researchers from various countries; as the extension register of the accumulator (A) was called Y (and not, say, B for the next letter of the alphabet, or L for the "least-significant bits"), it is likely that the choice of the mnemonic based on the term "young(er) bits" was well-understood and well-accepted.
The YTA
instruction in the Logical mode is a regular move instruction, and in the "arithmetic" (Additive or Multiplicative) modes it moves just the mantissa bits. That behavior is mostly (or only) geared toward facilitating extended precision arithmetic.
Also note that there is no explicit opposite instruction (ATY
); moving the accumulator to the Y register is achieved as a side effect of the AEX
(exclusive OR) instruction.
answered Aug 28 at 20:34
Leo B.
5,86332265
5,86332265
"the page you refer to, which was authored by me a long time ago" Why I'm not surprised? :))
– Raffzahn
Aug 28 at 20:57
Leo B. How do you know so much about this? Are you Russian or do you understand Russian?
– Wilson
Aug 29 at 7:58
@Wilson I'm Russian. I've just updated the instruction set page; please see if it makes more sense now.
– Leo B.
Aug 29 at 8:42
1
@Raffzahn :) I've carefully avoided inserting vanity links when asking my BESM-6 related questions.
– Leo B.
Aug 29 at 8:43
add a comment |Â
"the page you refer to, which was authored by me a long time ago" Why I'm not surprised? :))
– Raffzahn
Aug 28 at 20:57
Leo B. How do you know so much about this? Are you Russian or do you understand Russian?
– Wilson
Aug 29 at 7:58
@Wilson I'm Russian. I've just updated the instruction set page; please see if it makes more sense now.
– Leo B.
Aug 29 at 8:42
1
@Raffzahn :) I've carefully avoided inserting vanity links when asking my BESM-6 related questions.
– Leo B.
Aug 29 at 8:43
"the page you refer to, which was authored by me a long time ago" Why I'm not surprised? :))
– Raffzahn
Aug 28 at 20:57
"the page you refer to, which was authored by me a long time ago" Why I'm not surprised? :))
– Raffzahn
Aug 28 at 20:57
Leo B. How do you know so much about this? Are you Russian or do you understand Russian?
– Wilson
Aug 29 at 7:58
Leo B. How do you know so much about this? Are you Russian or do you understand Russian?
– Wilson
Aug 29 at 7:58
@Wilson I'm Russian. I've just updated the instruction set page; please see if it makes more sense now.
– Leo B.
Aug 29 at 8:42
@Wilson I'm Russian. I've just updated the instruction set page; please see if it makes more sense now.
– Leo B.
Aug 29 at 8:42
1
1
@Raffzahn :) I've carefully avoided inserting vanity links when asking my BESM-6 related questions.
– Leo B.
Aug 29 at 8:43
@Raffzahn :) I've carefully avoided inserting vanity links when asking my BESM-6 related questions.
– Leo B.
Aug 29 at 8:43
add a comment |Â
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%2f7407%2fwhat-is-the-purpose-of-the-%25cf%2589-register-of-the-%25d0%2591%25d0%25ad%25d0%25a1%25d0%259c-6%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
I had no idea how to tag it so i created besm6.
– Wilson
Aug 28 at 10:56
1
Quick shot: These are all floating point numbers, and additive/multiplicative operations seem to do rounding/normalization differently, therefore different bits represent a "zero" condition (which is fuzzy in FP, anyway). One would need more details about how rounding/normalization is handled by the instructions. The emulator source code may help.
– dirkt
Aug 28 at 11:47
1
@wizzwizz4 Thanks. Transliteration is a complicated topic, but at least SIMH and IIRC a few others call it besm6.
– Wilson
Aug 28 at 12:04
3
The transliteration is correct - Lucky for us all four letters have only a single latin equivalent :))
– Raffzahn
Aug 28 at 12:09
1
"Younger bits" meaning "least-significant bits" is not widespread but apparently understood in context. It can be found, for example, in an RFC. OTOH, "young bits" is a term related to branch prediction.
– Leo B.
Aug 28 at 18:53