IfThen Software

Profile
Oregon
Journals our progress on current projects
54 comments
1 followers
169 entries
Advertisement
VBStrider
September 21, 2011
Instruction Throughput Decides All
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…
1,516 views
VBStrider
September 20, 2011
Scalar But Multiple Functional Units?
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…
785 views
VBStrider
September 17, 2011
Researching Thornton's Algorithm
"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 …
812 views
VBStrider
September 16, 2011
Forwarding and Out-of-Order Scalar Trouble
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…
841 views
VBStrider
September 15, 2011
OOO Execution with In-Order Completion?
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…
797 views
VBStrider
September 14, 2011
Reorder Buffer, Public Project Tracking
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…
763 views
VBStrider
September 10, 2011
Execution Scheduling and Memory Disambiguation
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…
737 views
VBStrider
September 09, 2011
Memory Hazards, Jaggies, and EC2
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…
752 views
VBStrider
September 08, 2011
Memory Superscalar Problems
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…
641 views
VBStrider
September 07, 2011
Instruction Issue Buffer Q&A
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…
1,193 views
VBStrider
September 03, 2011
Register Renaming
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 …
1,081 views
VBStrider
September 02, 2011
Data Hazards
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…
997 views
VBStrider
September 01, 2011
Researching CPU Architecture
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 …
659 views
VBStrider
June 29, 2011
Back to the SHMUP?
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…
731 views
VBStrider
June 18, 2011
Mathematical functions
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…
859 views
VBStrider
June 17, 2011
Equivalence relations
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 |…
1,046 views
VBStrider
June 16, 2011
GDC Vault and Relations
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…
928 views
VBStrider
June 15, 2011
De Morgan's Laws
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.…
1,537 views
VBStrider
June 14, 2011
Starting graph theory
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…
894 views
VBStrider
June 11, 2011
Well, apparently it's not a prereq
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…
1,025 views
VBStrider
June 10, 2011
Going back into study mode
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…
711 views
VBStrider
June 09, 2011
Skybox
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,…
1,610 views
VBStrider
June 08, 2011
First screenshot of new project, mouse look
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 …
535 views
VBStrider
June 07, 2011
Direct3D9 FFP Lighting
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…
825 views
VBStrider
June 04, 2011
Researching Direct3D9 Lighting
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 …
554 views
VBStrider
June 03, 2011
The relation between graphics APIs and graphics drivers, also CRT security enhancements
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…
663 views
VBStrider
June 02, 2011
Systems layer makes a comeback
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…
646 views
VBStrider
June 01, 2011
Passing input events
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…
774 views
VBStrider
May 28, 2011
Researching airplane controls and state switching
Most of today's work was spent in researching airplane controls for the new test project. I don't have much to say on the matter, but here are a couple resources which may be of interest:
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
10 Followers
15 Entries
11 Followers
johnhattan
Programmer
1,277 Entries
48 Followers
ApochPiQ
Generalist
628 Entries
44 Followers
dgreen02
Generalist
338 Entries
56 Followers
Advertisement