Hello as the questions describes I'd like to know whether it's possible to do this ? Can binary executable code which is executed by a processor core possibly be stored using physical silicon gates ? I understand that a device's OS or user application code can be stored in ROM or EEPROM or in flash memory but is it possible to store using physical silicon gates only ? Similarly can a ROM Boot loader be stored using physical silicon gates instead of ROM or flash memory ?[UPDATE] Can binary code be stored on the same area of the die used to represent the core (CPU) design structures ? So using logic gate transistors but not using combinational logic gate transistors (ROM) and not using floating-gate transistors NAND and NOR logic gates (flash memory) and not using floating-gate MOSFET (EEPROM) ?
In fact, there are hard-coded bits of data on many processors and other such devices, even complete bootloaders.
There are many ways to do that, sometimes it's just an array of hardwired shorts to VCC or GND that are selected in a grid, just like the bit-cells in an EEPROM device.
Or sometimes it's a row driver with diodes and pull down or pull up resistors, or a similar trick, where the row driver decodes the address it's given, much like a 3-to-8 decoder, but larger:
Consider this "8 row, 3bit Hardwired rom":
And since I'm not a chip designer, I'm probably overlooking some details here and there, but I'm quite sure there's a lot of ways this similar trick gets done. In some, or even many, cases they may make a grid with all diodes, or links, present and then laser etch away the paces where they want the opposite bit to come out, for example with unique IDs, where every chip gets lasered an increasing number in a fixed spot in the memory, that will not decay over time like Flash or EEPROM (though the latter has become nearly ageless by now).
Executable code is just data, ones and zeros. How to store that ? You need something where you enter the address of the memory location you want to read and at the output the corresponding data appears. Can you make such a thing using standard gates (AND, OR etc.) ? Yes, it is just combinatory logic.
Is that efficient ? No it is not, for it to be efficient you want to use the smallest devices possible. These smallest devices are specially designed to store data and to fit as many as possible on a given area.
If you would use standard logic gates (AND, OR etc) then this would use a lot more area. You would also need to connect them in certain ways to define if a zero or a one is stored.
Fusing or anti-fusing is probably the simplest way to store bits in silicon. All it takes in a higher current to blow the fuses which then corresponds to a zero or a one. There's various implementations of fusing which are described in more detail here.