kmcguire wrote:
@Candy & Kemp
WOW
I was about to ask, "What is SMD, VHDL compiler, TLB, and FPGA?"
SMD : Surface Mounted something. The idea behind SMD versus normal components is that they don't have wires that go through the PCB (printed circuit board) and are soldered on the other side, but they're soldered right on the same side you put them on. That allows people to make them smaller, and smaller and smaller.... The smallest SMD chips have so many pins or are so small you can't solder them by hand - period. They're just too darn small. Normally, soldering is having a bit of metal on the component, a bit of metal on the board, some tin to melt and a soldering iron. In SMD, the resistors are smaller than the tip of your old soldering iron was.
VHDL: VHSIC Hardware Description Language. VHSIC = Very High Scale Integrated Circuit. It's a programming language for hardware. You tell it in a (must admit, annoying and hard) programming language what you want to get out in terms of ports and connections, including hierarchical design, and it produces that for you.
TLB : Translation Lookaside Buffer. The reason why paging doesn't slow your computer down as much as it normally would. It's a bit of hardware that caches results from your page lookup logic so that it can tell the answer directly, instead of after a while. In the PC you have to clean the TLB partially with INVLPG or fully by reloading CR3 when you change the page table so the TLB knows what you've been doing. Mine works pretty nicely now, except for out of the 64 entries I want in there, 62 take 3 logic elements, one takes 15 and one takes 512. I can't figure out why either, it's exactly the same component instantiated multiple times. Anyway...
FPGA: Field Programmable Gate Array. It's like a normal processor, but with gates that have been designed to be able to do anything. Those gates are relatively huge, but still quite small compared to anything else. You can then program each of these gates by sending a few bytes of configuration data to them and they'll start acting like the gate you specify. Now, if you chain together a few thousand of these intelligently with some memory blocks and multipliers added in between (since these two are both very common and eat up huge amounts of gates otherwise - 512 bytes of memory takes 8192 gates for just the memory) you will get your own chip design, running at a relatively low speed (compared to the 3ghz p4's etc, they'll run between 20 and 400 mhz, depending on how expensive and large your chip is). So, in effect, you get a blank chip that you can program for around $200 instead of requiring an order to the ASIC (application specific integrated circuit) factory, which costs millions just for the generic test runs.
BUT, that link you posted is kinda awsome and I started looking around while I was writting this and I saw some of the words.. FPGA board or something.. Im going to check it out over time. I am glad you posted something about this in the forums and repied back about it. Thanks!
Your processor design goal is very high, I take it you have been working and reading on those things for a long time now! I got to catch up one day.
If you set your goals low, you might make them. If you make your goals, what else can you do? Set your goals to near-unreachable heights and have unlimited motivation. That way, you never stop learning and will always have something new to do.
Microcode, That is honestly above and behind my understanding of electronics. I know what it is, and I have an idea of how it works - but beyound that anyone who can understand and engineer with those things is close to genuis!
Microcode - I think you mean the microcode that superscalar cpu's execute - is also not on my design list. I will try to make it slightly scalar (have a pipeline) but it won't have out-of-order execution until somebody sponsors me a $5000 FPGA, which you'll require to fit it on ;D.
Just getting a basic CPU working is my current goal, and I consider it hard enough already
.