Accessing an SRAM Array?
To write to a one or more cells on a single SRAM row, one should strongly drive both the inverted and non-inverted bit-lines for the appropriate columns with complementary values, float all the other columns, and then drive the appropriate row-select wire high.  Columns which are strongly driven externally will hold the states forced by those external drivers, while others will accommodate themselves to the states stored in the memory cells on the selected row.  All memory cells on the selected row will latch the data on their appropriate columns, which will either be the externally-driven data (for the driven rows), or the data the memory cells already contained (for the non-driven ones).

To read one or more cells, float all the columns and drive the appropriate row-select wire high.  All columns will then accommodate themselves to the states of the appropriate memory cells.  When reading, one could use one bit line from each column and ignore the other, or one could feed both lines into a voltage-comparator circuit.  Even though the latter approach would require more circuitry, it could offer better performance since the comparator's output could switch before the column wires had achieved valid logic levels.

It's worthwhile to note that if one uses two select wires for each row, one of which operates the left-side transistor in each column and one of which operates the right side, one may fairly easily implement a memory which can accommodate either two simultaneous reads or else one write (reliable writing will in many cases require driving both wires associated with a column, but reading only requires one).