Onur Mutlu - Digital Design & Computer Arch. - Lecture 10: ISA & Assembly Programming (Spring 2021)

preview_player
Показать описание

Lecture 10a: Instruction Set Architectures II
Lecture 10b: Assembly Programming
Date: March 26, 2021

For further detail, recommended videos:

ISA Tradeoffs:

ISA Tradeoffs and MIPS ISA:

ISA Introduction:

RECOMMENDED VIDEOS BELOW:
===========================

The Story of RowHammer Lecture:

Accelerating Genome Analysis Lecture:

Memory-Centric Computing Systems Tutorial:

Intelligent Architectures for Intelligent Machines Lecture:

Digital Design and Computer Architecture Spring 2021 Livestream Lectures Playlist:

Computer Architecture Fall 2020 Lectures Playlist:

Digital Design and Computer Architecture Spring 2020 Lectures Playlist:

Rethinking Memory System Design Lecture @stanfordonline :

Computer Architecture at Carnegie Mellon Spring 2015 Lectures Playlist:
Рекомендации по теме
Комментарии
Автор

XOR - used to toggle bits.
A B | O
| --
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0

If A is your input to be Negated Just look to see when the cases in XOR are true:

Does 0^0 = !0 ? N
Does 0^1 = !0 ? Y
Does 1^0 = !1 ? N
Does 1^1 = !1 ? Y

At the hardware level to turn an XOR into a NOT the incoming value will be XORed with a constant 1 or high value. Now, if XOR is available as an instruction XOR with 1 will invert the bits. XOR with 0 will maintain the bits. XOR is related to Addition almost like OR is, where AND is related to Multiplication. This goes back to Boolean Algebra with the Product of Sums and the Sums of Products. And more than that, it's also related to the two different types of circuits: In Series and in Parallel. And that's the difference between AND and OR, Multiplication and Addition within Binary. It's Log 2 Arithmetic.

Binary addition, this is OR with single bit output
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1

Binary addition, this is XOR with 2 bit output
0 + 0 = 00
0 + 1 = 01
1 + 0 = 01
1 + 1 = 10

Binary Multiplication this is AND
0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1

Hope this helps! So if you want to NOT using XOR one of your Inputs MUST BE 1.

skilz