I get a somewhat different impression from the article you quoted. As I understand the article, paging and segmentation are 2 different virtual memory schemes that can be, but are not necessarily, combined for even more involved virtual memory schemes. I didn't fully understand this (and probably still don't). As far a segmented memory addressing (not in relationship to virtual memory), that goes back at least to the 8086/8088. It allowed these processors with 16 bit segment/address registers to address 1 MB of memory rather than being limited to 64K. It did this by adding a 16 bit offset to a 16 segment shifted over by 4 bits producing a 20 bit address. Note that the PC (program counter) is used in conjunction with the Code Segment register for fetching instructions. It is never involved in accessing data. Similarly, a segment and an offset value is all that is needed to produce an address for a data access, though there are addressing modes that add further modifications to this.