A Brain Outside of Your Brain

Look at the device you’re using to read this post. Regardless of what it may be, it’s practically a visual representation of your thoughts, ideas, and curiosities. Everything you’re curious about can almost always be answered with a simple Google search; your creativity can be modeled using various design methods; all your thought processes can be documented with a cluster of keystrokes. Overall, your device is like your second brain: it’ll do anything you tell it to do.

Likewise, the relationship that you and your brain have is analogous to the connection between software and hardware. Software and hardware go hand-in-hand: just like you and your brain, one won’t work without the other. In some ways, hardware is the device’s “brain” and software is what the brain “thinks”. If you’re thinking of typing a message to a friend on Facebook (software), then your device will allow you to type in keystrokes and send the message for you (hardware).

The problem is that we don’t see how typing keystrokes translate to a message that your friend will see, and how hardware takes care of this job for you. We don’t see the pathways that software goes through to reach hardware – kind of like how we can’t see how our brain processes our thoughts. In reality, software goes through many layers of abstraction to reach different parts of the hardware.

Layers of abstraction that software travels through to reach hardware.

Layers of abstraction that software travels through to reach hardware.

Technology is made in a way such that human beings are able to interact with it; it just takes a few clicks of a button along with some keystrokes to make something happen. What we don’t know, however, is that we see a specific user interface made for us to perform everyday tasks on a device. For example, storing your Microsoft Word document in the “Documents” folder is as easy as dragging and dropping your file into a folder. What’s actually happening is that the action of transferring your file into the folder is translated into a language that only the computer can understand (machine code/binary), which is then understood by the computer architecture (i.e. the processor), which processes the information and directs it towards where it needs to go. From this level, the information travels to the “gate” level: a series of input and output connections that transmit data. Lastly, the information reaches the “transistor” level, where these transistors act as “on” or “off” switches. Your file is finally stored in the memory, which can be accessed later.

We just went from the top-most level of abstraction to the bottom – now let’s go backwards and think: what if there was a way to change something in the lower levels of abstraction? For example, what if there was a way to improve the efficiency of the series of gates? As a result, everything built on top of the “gate” level would inherit the efficiency and speed applied to the series of gates. We’ve seen through the past that there is always a better and faster way for every idea or concept. Almost 100% of the time, there is a better version of the idea or “thought” you have, resulting in faster brain performance. This is the basis of engineering research: finding a better solution to a pre-existing idea. Relating this back to hardware and software, this brings up the question: can concepts and ideas be implemented primarily in hardware rather than software? Perhaps as a more understandable thought: can you make a mini-brain for a concept you have in mind?

Stay tuned for an upcoming post on the answer to these questions as well what the basis of the research work I’m doing is all about.