Are Hardware and Software the Same Thing?

  Рет қаралды 14,070

Inkbox

Inkbox

Күн бұрын

Пікірлер: 56
@smartperson1
@smartperson1 Жыл бұрын
I'm not sure where I expected this video to go, but I never expected it would end with you buying an FPGA dev board from China and programming it in Quartus. Good job!
@tactics40
@tactics40 Жыл бұрын
When you say a machine is "32-bit" that doesn't mean 32 registers.... It means each register is 32 bits wide.
@BogdanSass
@BogdanSass Жыл бұрын
Came to the comments looking for this. :) The only explanation for the phrasing in the video would be if he was thinking of registers at the bit level, with 32 "registers" (bits) for storing data. But it is a stretch...
@mikafoxx2717
@mikafoxx2717 10 ай бұрын
Yeah.. that's a bit of a misspeak. Just for example, x86 has a lot of odd registers of different sizes, whereas RISC-V might have 16, or 32 registers no matter if it's 32 or 64 bit (or 128 bit?), depending if it's got an (E)mbedded extension.
@Tracing0029
@Tracing0029 8 ай бұрын
Yep, I was just about to write this LOL
@mekafinchi
@mekafinchi Жыл бұрын
I don't think the way in which something is designed has anything to do with whether it's hardware or software or has any bearing on the relationship between the two. This is mostly directed at other commentors, but the distinction between hardware and software is whether they can be changed without physically modifying the device. A design put on an FPGA is software and the same design put on an ASIC (custom chip) is hardware, even if they share the same source code. The kind of software that you could change but probably won't (often) change outside of the design phase, as seen on FPGAs, is generally distinguished as firmware.
@musaran2
@musaran2 Жыл бұрын
Yup, it is a spectrum. "Software" or "code" fundamentally means a super easy way to reconfigure what the hardware does. That was the fundamental invention turning calculator circuits into computers.
@anon_y_mousse
@anon_y_mousse Жыл бұрын
So the short answer is "no" and the long answer is "yes". I like it.
@illford
@illford Жыл бұрын
In my eyes, they're 1 part of the same machine with both parts being necessary. The hardware is like the nervous system and heart, but the software is like the mind, muscles and flesh. Both are important to an animal and are required
@anon_y_mousse
@anon_y_mousse Жыл бұрын
@@illford I was sort of making a joke here, because in truth they're merely different ways of implementing an algorithm. Software is basically incomplete hardware and hardware is the culmination of that effort to implement an algorithm.
@andybrice2711
@andybrice2711 Жыл бұрын
I'd say the longer and most correct answer is: In some circuits (such as FPGAs and EEPROMs) the distinction between hardware and software is not clear-cut.
@conorstewart2214
@conorstewart2214 10 ай бұрын
@@illford except hardware can exist without software but software can’t exist without hardware. Hardware doesn’t need to be programmable and doesn’t need to take a list of instructions. Think about an 8 bit adder IC, it can perform the operation of adding two 8 bit numbers but it doesn’t need any software to do so. In a similar way any operation can be implemented purely in hardware with no software as is often done in the case of ICs and ASICs. So in your analogy hardware is capable of being everything, the whole animal. However hardware on its own is fixed in what it does, you create a hardware circuit and it does what it does and never changes. That’s why we add software. It is similar to analogue computing vs digital computing, analogue computing can be much more powerful but digital computing is easier and more general. Implementing your system in hardware generally means higher performance but it means it is harder to design and change, however with software it is lower performance but you can change the overall function of the device just by changing its code which is easier and quicker than redesigning the hardware and building a new circuit. So both parts are not necessary for a functional system, all you really need is hardware, however software makes things a lot easier but it can’t work without hardware to run on.
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 Жыл бұрын
Of course, software and hardware are different things. But more important question is what makes them unique and under which circumstances specific hardware can be swapped with generic hardware + specific software. It is important because in some cases right decision may save money or even improve quality of the product. What you mentioned briefly - designing _any_ hardware as software - is important topic too. Looks like lots of hardware manufacturers just clump components together, without deep thinking about why they choose specific component and what properties of final product it defines. Having possibility to create product specifications and automatically obtain blueprints of corresponding hardware would be great technology, but looks like humanity is not ready for it yet.
@LeWolfYT
@LeWolfYT Жыл бұрын
as always, very high quality and interesting!
@AverageMichaelJordans
@AverageMichaelJordans Жыл бұрын
Thanks for that unicode tip! I was gonna send something cool here with that but turns out you can't :(
@mattgio1172
@mattgio1172 Жыл бұрын
Today Start!! hahahaha Amazing video - it's a really astute argument you make, and one I hadn't considered before. It's amazing that when you break it down far enough, the line between software and hardware gets very blurry.
@InfernosReaper
@InfernosReaper Жыл бұрын
Yeah, I once thought I was brilliant when I had the idea to program a microcontroller to explicitly emulate hardware and then I found out about FPGA and was like, "oh, someone stole my idea, did it better, and beat to it by years before I was born"
@Zeekblitz
@Zeekblitz Жыл бұрын
Umm... A 32 bit CPU does not have 32 registers.. nor does a 64 bit CPU have 64 registers... A simple Google search will show that there's only 8 registers in the x86 Intel architecture. 32 bit means each register can hold up to a 32 bit value as in 2^32. Same for 64 bit.
@InkboxSoftware
@InkboxSoftware Жыл бұрын
Thank you, you are correct. 32 and 64 refer to the size of the registers, not the number of registers. While x86 and x64 have 8 and 16 general purpose registers respectively, the total number of registers is greater than 8 or 16, but not tied to 32 or 64. I've added a correction above. Source: reverseengineering.stackexchange.com/questions/19693/how-many-registers-does-an-x86-64-cpu-actually-have There are some 32 bit CPU architectures that have exactly 32 registers, like MIPS.
@mekafinchi
@mekafinchi Жыл бұрын
There are many ISAs with 32 registers - PowerPC for example. A slightly less simple google search will tell you there are considerably more than 8 registers in x86, too. The original 16 bit x86 had 14 16-bit registers - 4 general purpose, 3 pointers, 4 segment regs, 2 index regs, and flags. Then there are the 8 x87 floating point registers, which are 80-bit. That's 22 registers and we're not even 32 bit! There're also a slew of control and debug registers that get sprinkled in but they're too special purpose to count. 32 bit x86 extended the existing registers and added two segment registers (24!) The MMX and SSE extensions renamed and extended the existing x87 registers respectively. 64 bit x86 is where the registers start just pouring in. x86-64 extended the existing registers again and added 8 general purpose registers and 8 SSE registers (40!). AVX extended the SIMD registers again, and AVX-512 extended them and doubled their amount (56!). The SIMD registers are 512 bits each, and there're 32 of them! Anyways, although you're still right that there aren't 32 registers in 32 bit cpus or 64 registers in 64 bit cpus, the number is nowhere near 8. There're actually a bit more than 32 and 64 respectively if you count all the niche control registers I didn't mention.
@Zeekblitz
@Zeekblitz Жыл бұрын
@@mekafinchi I know that there are processors that have >8 registers but I felt the video was implying that 32 bit == 32 registers but that's not the case.
@yippy7951
@yippy7951 Жыл бұрын
​@@mekafinchi​ He said there are 8 *general purpose* registers in x86 processors. In your example of the first 16bit x86 CPU, there are only 4 general purpose registers.
@monad_tcp
@monad_tcp 10 ай бұрын
I answer yes to that question, in theory a compiler would be able to transform a program directly into hardware or into a mix of software and hardware co-optimized for maximum execution speed.
@samconnelly7630
@samconnelly7630 Жыл бұрын
Errata: 1:13 He meant 32 bits per register on 32-bit, and 64 bits per register on 64-bit. The amount of registers per core is independent of the number of bits per register, and is solely based off the instruction set architecture. x86_64 has 16 total registers, excluding extensions, while MMIX en.wikipedia.org/wiki/MMIX which has 256 general-purpose registers!
@channtron
@channtron Жыл бұрын
This, together with the question of, programming hardware is firmware? Are the type of questions that bring war into the Office... Nice video, i would LOVE to watch your opinión on where does firmware start, at the bare metal, the hdl, or the OS level. It's a heated argumento...
@Tracing0029
@Tracing0029 8 ай бұрын
I think the thing you are trying to explain here is Turing-completeness. I am not sure if you knowingly did not mention it or do not know about it. In a more general way, even if a computer is not Turing-complete, both software instruction and hardware descriptions (and their phyisical implementations) are basically computational math personified in a way. Very good video nevertheless.
@mynameusedtobelong
@mynameusedtobelong Жыл бұрын
I couldn't stop thinking: this looks like a brain.
@ractheraccoon
@ractheraccoon Жыл бұрын
i love that i immediately recognized where your name comes from
@mynameusedtobelong
@mynameusedtobelong Жыл бұрын
@@ractheraccoon finally! someone get it :)
@Zicrus
@Zicrus Жыл бұрын
3:17 The bitwise XNOR formula should be: ~(A^B)
@satibel
@satibel Жыл бұрын
the main difference is that making/changing software is basically free.
@SnareX
@SnareX Жыл бұрын
Bro how low did you set that VM? I grew up through the progression and I never seen paint load that slow. I didn't have high spec stuff either
@SnareX
@SnareX Жыл бұрын
Then again loading Action 2.5 (precursor to flash) on my 486dx with 64mb ram took like 20+ minutes on windows 3.1
@SnareX
@SnareX Жыл бұрын
Im might be mixing up the ram with KB. I just remember dos saying close to 64,000
@Manabender
@Manabender Жыл бұрын
So the short version is: You argue that, at an abstract level, hardware and software are the same. Sound about right?
@heterodoxagnostic8070
@heterodoxagnostic8070 Жыл бұрын
No open source FPGAs?
@XiaZ
@XiaZ Жыл бұрын
I've been there like just like you. You will get over it.
@NightpireVideos
@NightpireVideos Жыл бұрын
pretty cool, good job
@samaeltheangelofdeath
@samaeltheangelofdeath Жыл бұрын
SOOO.🤨🤔💭 like hermetica , shuffling a deck is putting it in order(8x) hot and cold same thing, different degrees... That's interesting. Soft hard.... Hmmm well...I don't really know what either are🤷‍♂️
@themetalgamer9864
@themetalgamer9864 Жыл бұрын
So... does that mean that FPGA-based retro consoles, if given the correct instructions, act exactly the same as original hardware?
@InkboxSoftware
@InkboxSoftware Жыл бұрын
No, as the physical layout of the FPGA won't be the same as the original hardware. Ideally the FPGA would be mimicking the physical processes of the original system, but there it couldn't be a 1:1 copy. So it's basically physical emulation.
@themetalgamer9864
@themetalgamer9864 Жыл бұрын
@@InkboxSoftware I'm confused. I know that software emulation can never be "perfect" because it runs in series rather than parallel, but what is the equivalent speed bump keeping FPGAs from being perfect?
@InkboxSoftware
@InkboxSoftware Жыл бұрын
An FPGA is a set of logic blocks that can be configured to mimic integrated circuits. But because of the fact that these aren't physical elements like a resistor or transistor, it simply isn't the exact same circuit. If an ASIC is a concrete block, then an FPGA would be a block made of bricks. On the macro-scale they can be the same shape and volume, and even serve the same purpose, but on the micro-scale they're made of different things, so in that way an FPGA can never be a 1:1 copy of an ASIC because they're just different things.
@mikafoxx2717
@mikafoxx2717 10 ай бұрын
​@@themetalgamer9864 Software emulsion CAN be perfect, it's just slower to do so. FPGA's can take advantage of parallelism, so for instance the N64 graphics processor can run concurrently to the main CPU instead of doing one then another. FPGA design however are also usually not perfect, because the information needed to do so isn't fully reverse engineered, like what may happen when you change the microcode for the graphics co-processor from the default - which a few games implemented by getting more expensive development licences from Nintendo.
@jescis0
@jescis0 Жыл бұрын
When did firmware get out of use? Firmware as I remember, was software on a chip(hardware)! Example Super Mario Bros. Source code is software but when the code is applied/programmed on a mask ROM, it becomes firmware! 🤔🤔 are we losing technobable? 🤯🤯😮😮
@derikdotnet
@derikdotnet Жыл бұрын
Wooooo first! Love your videos man
@crides0
@crides0 Жыл бұрын
Obviously they are not the same. Software don't have that magic smoke to them
@mrgps4393
@mrgps4393 Жыл бұрын
A simple answer is yes
@TheRojo387
@TheRojo387 Жыл бұрын
Real computers are too cool for character ROMs. So I'm going about designing a pure computer, which deals in numbers only, to be adapted into a full-blown Turing machine, which can truly evoke potentially infinite memory. Thing is, most Turing systems in existence have just enough space for our daily needs already.
@gk1370
@gk1370 6 ай бұрын
Looking for Computer Engineers in chat! 👇
@jatigre1
@jatigre1 Жыл бұрын
"Apparently" the aliens already have managed to fuse both in one, so in the presence of a determined field it performs a determined function, obviously not electromagnetic in nature, but aetheric (the EM spectrum is a byproduct of the aether).
@callmetony1319
@callmetony1319 Жыл бұрын
"There isn't any software! Only different internal states of hardware. It's all hardware! It's a shame programmers don't grok that better." The programmable FPGA is clearly different to a computer with programs stored in memory (software), but at the same time, there is no software anyway, in an absolute sense. "Software" is an abstraction (of computer hardware.) Is this what you were getting at?
@tototitui2
@tototitui2 Жыл бұрын
Please don't listen to this. 32 bits and 64 bits have nothing to do with the number of registers.
@timseguine2
@timseguine2 6 ай бұрын
There is no hardware. Only bool.
@thomassynths
@thomassynths Жыл бұрын
Buying a cheap FPGA from china without documentation is not a steal. Time is money. Buy something you can actually get docs about.
How I made typing Chinese on the Apple II possible
20:32
Inkbox
Рет қаралды 24 М.
How to Fight a Gross Man 😡
00:19
Alan Chikin Chow
Рет қаралды 12 МЛН
Увеличили моцареллу для @Lorenzo.bagnati
00:48
Кушать Хочу
Рет қаралды 8 МЛН
Don't underestimate anyone
00:47
奇軒Tricking
Рет қаралды 16 МЛН
ТВОИ РОДИТЕЛИ И ЧЕЛОВЕК ПАУК 😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 6 МЛН
ARM Processor - Sowing the Seeds of Success - Computerphile
13:20
Computerphile
Рет қаралды 276 М.
Turning an Ancient Chinese Legend into a Mario Rom Hack
14:51
Your Keyboard Cannot Comprehend These Noodles
12:27
Inkbox
Рет қаралды 364 М.
The Magic of RISC-V Vector Processing
16:56
LaurieWired
Рет қаралды 329 М.
Creating an Operating System for the NES
11:11
Inkbox
Рет қаралды 789 М.
How a CPU Works in 100 Seconds // Apple Silicon M1 vs Intel i9
12:44
The Origin of Computers Beyond the Great Wall
7:10
Inkbox
Рет қаралды 14 М.
Linux Kernel 6.12 | This is Historic
1:07:22
Maple Circuit
Рет қаралды 73 М.
Is 8-Bit Minecraft Possible?
12:58
Inkbox
Рет қаралды 1,3 МЛН
How to Fight a Gross Man 😡
00:19
Alan Chikin Chow
Рет қаралды 12 МЛН