I finally have an answer to my question! PleasingFungus from the #tigIRC channel on Esper discussed the question with me for two hours straight today and this is the answer I ended up with:
If a scalar (not superscalar) processor has multiple nonredundant functional units (a single FPU and a sin…
If a scalar (not superscalar) processor has multiple nonredundant functional units (a single FPU and a sin…
I spent most of the day trying to find the answer to the following question:
If a scalar (not superscalar) processor has multiple nonredundant functional units (a single FPU and a single ALU for example) and it issues an instruction to the FPU at a certain clock tick, could it issue another instr…
If a scalar (not superscalar) processor has multiple nonredundant functional units (a single FPU and a single ALU for example) and it issues an instruction to the FPU at a certain clock tick, could it issue another instr…
"Scoreboarding" is also called "Thornton's Algorithm". Tomasulo's Algorithm and Thornton's Algorithm were developed around the same time with roughly the same goals.
- They are both dynamic scheduling methods.
- They both resolve dependencies (RAW, WAR, and WAW).
- They are both pipelined.
- They both have …
Welp, I am still trying to figure out how an out-of-order scalar processor would work. The out-of-order execution part is easy enough, but I am having trouble figuring out how in-order completion would work. To this end, I am currently researching scoreboarding in the hopes of gleaning some h…
Today I was able to find an answer to the following research question:
Can a processor have out-of-order execution and in-order completion?
Yes; with one pipeline per active instruction. In other words, for every instruction in the active instruction window (every instruction which can be selected…
Can a processor have out-of-order execution and in-order completion?
Yes; with one pipeline per active instruction. In other words, for every instruction in the active instruction window (every instruction which can be selected…
Today I was able to find answers to the following questions:
What is the reorder buffer?
It is a buffer which is used to ensure that instructions commit in-order. It is also used in one method of register renaming. There is one entry for every active instruction. An instruction is active after…
What is the reorder buffer?
It is a buffer which is used to ensure that instructions commit in-order. It is also used in one method of register renaming. There is one entry for every active instruction. An instruction is active after…
Unfortunately I was unable to get much research done today. However, I did learn a few things.
A processor can be either statically scheduled or dynamically scheduled.
A statically scheduled processor depends on the compiler to create the execution schedule. I am guessing this is either through hi…
A processor can be either statically scheduled or dynamically scheduled.
A statically scheduled processor depends on the compiler to create the execution schedule. I am guessing this is either through hi…
Memory data hazards are prevented by keeping a list of all the addresses with outstanding stores, and putting a load into a queue if it is for an address in that list. I don't know how WAW hazards are prevented though... I am currently reading "ARB: A Hardware Mechanism for Dynamic Reordering…
Today I started reading about memory access. I don't really have much to say on the matter yet, except that it is apparently not as easy to execute multiple memory access instructions at once as it is for integer/float instructions. This mostly stems from the fact that until the instruction i…
Today I finally finished the section on instruction issuing. This took me a while because I had questions which didn't have readily available answers. Here are the questions I was attempting to find answers to, along with the answers I eventually found (if you have a better answer to any of t…
Register renaming is the action of replacing the registers used by an instruction with different registers.
When register renaming is used, there are more physical registers (actual hardware registers) than there are logical registers. A logical register is a register which is defined to exist by …
When register renaming is used, there are more physical registers (actual hardware registers) than there are logical registers. A logical register is a register which is defined to exist by …
Today I finished learning about two of the common (or were common in 1995 at any rate) methods for renaming registers.
First off I should probably explain what "renaming registers" means. In order to have multiple instructions executing in parallel and/or executing out of order (very common nowad…
First off I should probably explain what "renaming registers" means. In order to have multiple instructions executing in parallel and/or executing out of order (very common nowad…
I will be trying out a new idea while developing the SHMUP: Develop it as though I am creating it for a console, where the console is my specific computer. The plan is to add in support for other hardware afterwards. This should also help me determine the system requirements, as I will be a …
Well, I am finally through the prereqs section of the graph theory book. Although I didn't do the final problem set, I should have a good enough grasp on the subjects to make use of them.
I am currently considering using kinematics for animation in the SHMUP rather than dynamics, which would all…
I am currently considering using kinematics for animation in the SHMUP rather than dynamics, which would all…
A function is similar to a relation. It is a set of ordered pairs (a, b) where a is an element of some set A and b is an element of some set B. For each element in A, there is exactly one ordered pair with that element in the first position. Given such a function f, we say that it is a functi…
Today I learned about equivalence relations, equivalence classes, partitions, divides, and congruent to modulo n.
An equivalence relation is a relation that is reflexive, symmetric, and transitive. Pretty straight forward.
An equivalence class (also known as an equivalence set) is denoted [a] = {x |…
An equivalence relation is a relation that is reflexive, symmetric, and transitive. Pretty straight forward.
An equivalence class (also known as an equivalence set) is denoted [a] = {x |…
Apparently you can get a lot of the GDC presentations for free at the GDC Vault website. It doesn't have everything unfortunately (I couldn't find Erin Catto's 2006 presentation), but there are some cool things in there. I didn't have much time to browse around, but the Halo: Reach networking…
I spent most of the morning creating a forum post asking for people's opinions of Chris Hecker's physics references list. I posted it on four forums: The Bullet Physics Simulation Forum, GameDev.net, TIGSource, and Physics Forums. It's been interesting to see how active the various forums are.…
Today I started reading Introductory Graph Theory by Gary Chartrand. It's starting off teaching about modeling. Modeling in this case is turning something into math, such as the area of a square being A=W^2.
I reached the part in the book where it talks about actual graphs, but it was using ter…
I reached the part in the book where it talks about actual graphs, but it was using ter…
Today I decided to learn about the Laplace Transform and eigenvectors/values.
From what I gather, the Laplace Transform transforms a function f(t) into a function f(s). I'm not entirely sure what "s" is supposed to be though... I suspect it is used as a temporary placeholder for going inbetween…
From what I gather, the Laplace Transform transforms a function f(t) into a function f(s). I'm not entirely sure what "s" is supposed to be though... I suspect it is used as a temporary placeholder for going inbetween…
Yesterday I made it so that you could control the pitch, heading, and roll of your ship using the mouse and cursor keys. Pitch and heading adjustment works fine, but roll is dependent on the direction that your ship is facing; I actually suspect that the other two have similar problems as well…
A skybox is used to add a background to a 3D scene. Things which are so far in the distance that they can be drawn into a 2D texture, such as the sun, distant mountains, and unmoving clouds, are part of the background. It is literally a box with the camera at its center. As the camera moves,…
You can now look around the cockpit using the mouse.
In order to get the mouse's relative movement, I used raw input. After I have the relative movement vector, I multiply it by the mouse sensitivity and multiply that by the rotation speed. This gives the final angular velocity vector which I …
In order to get the mouse's relative movement, I used raw input. After I have the relative movement vector, I multiply it by the mouse sensitivity and multiply that by the rotation speed. This gives the final angular velocity vector which I …
Today I finally managed to get the cockpit model into the game. I've decided to use the fixed function pipeline this time rather than shaders; it's probably a good idea to be experienced with both.
To use FFP (fixed function pipeline) lighting, you first need to fill in a D3DLIGHT9 structure. T…
To use FFP (fixed function pipeline) lighting, you first need to fill in a D3DLIGHT9 structure. T…
While doing some further research into the relation between a graphics API and the graphics driver, I came across this article: Mode Switching. I recommend reading it if you are interested in the things I discussed in the previous blog post.
I spent most of the day in research, mainly into the way …
I spent most of the day in research, mainly into the way …
While working on the model loading code, the compiler complained about fopen() being deprecated. These warnings aren't new, but I've been wondering for a while what exactly caused the functions to become deprecated. So after a Google search I found myself at the MSDN reading "Security Enhance…
The first thing I did today was the removal of the initialization game state, replacing it with the systems layer. The "systems layer" is a collection of objects/systems common to all game states. Examples of these are the main window, Direct3D device, and timing system. Currently the system…
Today I finished up the basic windowing code. The window procedure is contained in a window manager, which also handles registering the class and creating the window.
I also did some research into the definition of RAII to try and work out what I should be calling a particular technique I have b…
I also did some research into the definition of RAII to try and work out what I should be calling a particular technique I have b…
Popular Blogs
Advertisement